comboBox1.DataSource = _team;
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "ID";
チームのように見えるタイプListItemModelの一般的なリストである:
public class ListItemModel
{
private string _name;
private short _id;
public string Name
{
get
{
return this._name;
}
}
public short ID
{
get
{
return this._id;
}
}
public ListItemModel(string name, short id)
{
this._name = name;
this._id = id;
}
}
私はその後、としてそれをdatabingしようとしていますこうした:
comboBox1.DataBindings.Add("SelectedValue", _person.Person, "TeamId", true, DataSourceUpdateMode.OnPropertyChanged);
マイデータソース(モデル)が設定されている。
public class PersonViewModel : INotifyPropertyChanged
{
public Person Person { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
{
var handler = PropertyChanged;
if (handler != null) handler(this, e);
}
}
コンボボックスに正しくデータを設定できますが、データが正しく変更されているのがわかるため、OnPropertyChangedイベントが実際に機能しています。私はそれをデータバインドしているにもかかわらず、
1)初期ロードオン/コンボボックスのSelectedValueのが設定されていない設定:
問題が2倍です。
2)コンボボックスの選択を変更してフォーカスを失うと、選択した値が保持されず、選択されていないことが示されます。 TeamIdが正しく変更されているのが分かるので、OnPropertyChangedが機能しています。
私はそれがこの上で一日中過ごし、コンボボックスは、それが簡単な解決策になってしまったデータをバインドする方法を掘り下げる後データバインディングコンボボックス
"Person"クラスのコードを表示できますか? – Bahrom