답변
클래스 다음
public class Language
{
public string Name { get; set; }
public string Value { get; set; }
}
정의 ...
//Build a list
var dataSource = new List<Language>();
dataSource.Add(new Language() { Name = "blah", Value = "blah" });
dataSource.Add(new Language() { Name = "blah", Value = "blah" });
dataSource.Add(new Language() { Name = "blah", Value = "blah" });
//Setup data binding
this.comboBox1.DataSource = dataSource;
this.comboBox1.DisplayMember = "Name";
this.comboBox1.ValueMember = "Value";
// make it readonly
this.comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
원하는 콤보 상자에 많은 언어를 추가, 그 다음 수준의 언어
public class Language
{
public string Name{get;set;}
public string Value{get;set;}
public override string ToString() { return this.Name;}
}
만들기 오직 "나는 사용자가 값을 선택할 수없는 곳에 완전히 읽기 전용 인 것과 달리 사용자가 다른 옵션을 입력하는 것을 막기를 원한다고 가정하고 있습니까?
완전히 읽기 전용이되도록하려면 enabled 속성을 false로 설정할 수 있습니다.
Language[] items = new Language[]{new Language("English", "En"),
new Language("Italian", "It")};
languagesCombo.ValueMember = "Alias";
languagesCombo.DisplayMember = "FullName";
languagesCombo.DataSource = items.ToList();
languagesCombo.DropDownStyle = ComboBoxStyle.DropDownList;
class Language
{
public string FullName { get; set; }
public string Alias { get; set; }
public Language(string fullName, string alias)
{
this.FullName = fullName;
this.Alias = alias;
}
}
:
class Language
{
string text;
string value;
public string Text
{
get
{
return text;
}
}
public string Value
{
get
{
return value;
}
}
public Language(string text, string value)
{
this.text = text;
this.value = value;
}
}
...
combo.DisplayMember= "Text";
combo.ValueMember = "Value";
combo.Items.Add(new Language("English", "en"));
@ MarkB29 : Enabled = false로 설정하면 사용자가 ComboBox를 입력하여 원하는 언어를 선택할 수 없습니다. 이것은 확실히 좋은 일이 아닙니다. 입소문은 사용자가 자신의 언어를 선택할 수 있기를 바랍니다. 그러나 Enabled = false는 허용하지 않습니다. ComboBox를 읽기 전용으로 설정하려면 DropDownStyle 속성을 DropDownStyle.DropDownList로 설정해야합니다. –
@Will Marcouiller : 저는 이것을 실제로 제 대답에 넣었습니다. – MarkB29
예, 그렇습니다. 내 오해를 용서해주십시오. 그러나 대답의 코드 샘플 다음에 Enabled 속성을 false로 설정하여 완전히 읽기 전용으로 설정합니다. 내 견해로는 ComboBox를 사용하지 않으면 아무런 이점도 나타나지 않습니다. 간단한 레이블은 일. 그것이 내가 의미했던 것입니다. 아마 너의 의도가 뭔가 빠져있다. –
읽기 전용으로 만들려면 DropDownStyle 속성을 DropDownStyle.DropDownList로 지정합니다. 그런 다음
public class Language {
public string Name { get; set; }
public string Code { get; set; }
}
, 당신이 그렇게처럼 ComboBox.DataSource 속성에 IList에 바인딩 할 수 있습니다 :
가 콤보 상자를 채우려면, 당신은 예를 들어 모두 포함하므로 언어와 같은 객체를하거나해야합니다IList<Language> languages = new List<Language>();
languages.Add(new Language("English", "en"));
languages.Add(new Language("French", "fr"));
ComboxBox.DataSource = languages;
ComboBox.DisplayMember = "Name";
ComboBox.ValueMember = "Code";
정확히 예상 한대로 작동합니다.
당신이 @ 그레 고어의 예와 유사한 새로운 클래스를 만들 수있다 할 수 있지만, 당신은 ToString()
를 오버라이드 (override) 할 것 메서드를 사용하면 콤보 상자에 올바르게 표시됩니다.
public class Language
{
private string _name;
private string _code;
public Language(string name, string code)
{
_name = name;
_code = code;
}
public string Name { get { return _name; } }
public string Code { get { return _code; } }
public override void ToString()
{
return _name;
}
}
당신은 단순히 새로운 클래스가 이것을 시도 만들지 않고 추가하려면 다음
// WPF
<ComboBox Name="language" Loaded="language_Loaded" />
// C# code
private void language_Loaded(object sender, RoutedEventArgs e)
{
List<String> language= new List<string>();
language.Add("English");
language.Add("Spanish");
language.Add("ect");
this.chartReviewComboxBox.ItemsSource = language;
}
난 당신이 당신이하지 않아도 그런 식으로 지원하는 모든 언어와 XML 파일을 제안 C# 에 의존해야합니다 위의 프로그래머가 제안한 것처럼 languge 클래스를 확실히 만들 것입니다.
특정 클래스의 언어를 사용할 필요가 없습니다,
를 그냥로 교체 :
KeyValuePair<string,string>
하지만 어떻게 당신뿐만 아니라 다음 items.add("")
를 콤보 상자의 이름을 얻을? 예를
Language.Items.Add("Italian");
Language.Items.Add("English");
Language.Items.Add("Spanish");
희망이 들어
은 도움이 : D
- 1. 데이터베이스에서 실버 라이트 콤보 상자를 채우는 방법
- 2. C# windows는 콤보 상자를 채우는 방법?
- 3. 텍스트 파일 항목으로 콤보 상자를 채우는 방법!
- 4. 잘못된 옵션을 나는 다음과 같은 사용하여 폼에 콤보 상자를 만든
- 5. 웹 서비스를 사용하여 AjaxControlToolkit 콤보 상자를 JQuery로 채우는 방법
- 6. delphi 7 : 개체 Tcollection에서 콤보 상자를 채우는 방법?
- 7. Dir의 이름 파일로 C#의 콤보 상자를 채우는 방법?
- 8. extjs : 트리 노드의 직접 자식으로 콤보 상자를 채우는 방법?
- 9. 콤보 상자를 호출하지 MyClass.ToString()
- 10. 나는 다음과 같은 열을 가진 DataTable을 가지고
- 11. 콤보 상자를 바인딩하는 방법
- 12. DataGridview에서 다른 콤보 박스의 선택된 값에 따라 DataGridview에서 콤보 상자를 채우는 방법?
- 13. 선택한 국가의 도시와 모든 국가 이름 및 다른 콤보 상자를 사용하여 winforms의 콤보 상자를 채우는 방법이 있습니까?
- 14. wpf에서 콤보 박스를 만들고 싶습니다.
- 15. itemtemplate에있는 목록 상자를 채우는 방법
- 16. JSP 페이지에서 동적으로 텍스트 상자를 채우고 싶습니다
- 17. 나는 다음과 같은 서명을 확장 도우미 만들 싶습니다 형태
- 18. 콤보 상자를 선택하면 openFileDialog가 나타나야합니다.
- 19. 콤보 상자를 편집 가능하게 만들기
- 20. 콤보 상자를 10 진수로 변환합니다.
- 21. C에서 콤보 상자를 사용하는 방법
- 22. 콤보 상자를 양식화하는 방법은 무엇입니까?
- 23. 내가 Grails의에서, 내 응용 프로그램에서 나는 동적 콤보 상자를 만든 초보 동적 콤보 상자
- 24. 나는 나는 다음과 같은 URL을
- 25. 엔티티 프레임 워크 - 콤보 상자를 정규화 된 테이블 필드에 바인딩
- 26. 컬렉션에서 속성으로 텍스트 상자를 채우는 방법은 무엇입니까?
- 27. 데이터 보관함 값으로 텍스트 상자를 채우는 방법
- 28. 나는 다음과 같은 검사를
- 29. 다른 콤보 상자를 기준으로 한 콤보 상자의 값 -
- 30. EXT JS에서 multiselect 콤보 상자를 구현하는 방법
{get; 세트; } 여기 중요합니다. – pbies
@pbies, 매우 유용한 의견을 주셔서 감사합니다! –