我已经填充了这个已经填充的ComboBox,我想要做的就是将它设置为特定的selectedItem,知道它的值.
我正在尝试这个,但没有任何反应:
comboPublisher.SelectedValue = livre.Editeur;
Run Code Online (Sandbox Code Playgroud)
考虑到我已经在我的Editeur类中实现了Equals(..)方法,这样:
public bool Equals(IEditeur editeur)
{
return (this.Nom == editeur.Nom);
}
Run Code Online (Sandbox Code Playgroud)
这是我填充我的ComboBox的方式:
foreach (Business.IEditeur editeur in _livreManager.GetPublishers())
{
comboPublisher.Items.Add(editeur);
}
Run Code Online (Sandbox Code Playgroud)
任何的想法 ?
谢谢 !
[编辑]:这似乎适用于:
comboPublisher.SelectedItem = livre.Editeur;
Run Code Online (Sandbox Code Playgroud)
我的Equals方法是:
public override bool Equals(object obj)
{
IEditeur editeur = new Editeur();
if (!(obj is System.DBNull))
{
editeur = (IEditeur)obj;
return (this.Nom == editeur.Nom);
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
DataSources如果是 WinForm,则需要将其设置ItemsSource为 cobobox,如果是 WPF,则需要将其设置为 cobobox,然后才能正确使用 SelectedValue。
[更新] 您应该创建集合来保存这些项目,然后将其设置为数据源(WinForm)/ ItemsSource(WPF),而不是直接将每个项目添加到组合框
foreach (Business.IEditeur editeur in _livreManager.GetPublishers())
{
//comboPublisher.Items.Add(editeur);
list.Add(editeur);
}
combobox.ItemsSource = editeur;
combobox.SelectedValuePath = "value_property_name";
combobox.DisplayMemberPath = "display_property_name";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8753 次 |
| 最近记录: |