[英]Display certain variable of each object into a Combobox
快速提問
我有一個此類的對象列表:
public class Whatever
{
public string Name { get; set; }
public List<blaBla> m_blaBla { get; set; }
// ..
}
我想將List<Whatever>
鏈接到ComboxBox,用戶可以在其中看到每個Whatever
對象的Name
。 我怎樣才能做到這一點?
您可以像這樣使用ComboBox.ItemTemplate
:
C#:
List<Whatever> lst = new List<Whatever>();
public MainWindow()
{
InitializeComponent();
cmb.ItemsSource = lst;
}
XAML:
<ComboBox Name="cmb">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
或使用DisplayMemberPath
:
<ComboBox Name="cmb" DisplayMemberPath="Name">
</ComboBox>
或者只是重寫ToString()
函數,它將為您完成這項工作:
public class Whatever
{
public string Name { get; set; }
public List<blaBla> m_blaBla { get; set; }
// ..
public override string ToString()
{
return Name;
}
}
接着:
List<Whatever> MyList = new List<Whatever>();
public MainWindow()
{
InitializeComponent();
MyComboBox.ItemsSource = MyList;
}
創建一個視圖模型:
public ObservableCollection<Whatever> WhCol
{
get { return this.Name; }
set { }
}
然后是匹配視圖
<ComboBox DisplayMemberPath="Name" ItemsSource="{Binding WhCol}" />
如果您不想根據用戶輸入進行更改,則此方法更適合。 (對於組合框而言,這種情況很少見)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.