我有一个Dictionary<String,Person>
,其中Person是一个类,定义如下
String role;
public class Person
{
public string firstname{ get; set; }
public string lastname{ get; set; }
public string city{ get; set; }
}
我的问题是如何绑定Dictionary键:String同时使用ComboBox。具有词典值:与三个文本框连接的人。也就是说,一旦在ComboBox中选择了一个键,相应的值,名字,姓氏,城市将分别显示在三个文本框中?
提前致谢!
答案 0 :(得分:1)
注意:不存在可复制的代码......只是为了解决问题而存在。
我看到一些带有数据绑定的控件,如下面的窗口/视图中所示......
<Combobox ItemsSource="{Binding Path=AlphabeticalIds}" Text="{Binding Path=SelectedId}"/>
<TextBox Text="{Binding Path=SelectedPerson.FirstName}"/>
<TextBox Text="{Binding Path=SelectedPerson.LastName}"/>
<TextBox Text="{Binding Path=SelectedPerson.City}"/>
此类的实例被设置为视图的datacontext。它有以下成员。 (它们作为.NET属性公开; NotifyPropertyChange调用标识需要更改通知的属性)
_mapIdToPerson = Dict...
_alphabeticalIds = _map...Keys.Sort();
_selectedId;
set
{
_selectedId = value;
_selectedPerson = _mapIdToPerson[_selectedId];
NotifyPropertyChange("SelectedId");
NotifyPropertyChange("SelectedPerson");
}
_selectedPerson;