我正在弄清楚 WPF 中的绑定,并遇到了对象绑定的问题。
我有一个组合框,其中 itemsource 设置为用户列表
ICollection<User> users = User.GetAll();
cmbContacts.ItemsSource = users;
我的 UI 中还有一个对象,其中包含所选用户。
public partial class MainWindow : Window
{
private User selectedUser = new User();
public MainWindow()
{
InitializeComponent();
ReloadContents();
Binding b = new Binding();
b.Source = selectedUser;
b.Path = new PropertyPath("uFirstName");
this.txtFirstName.SetBinding(TextBox.TextProperty, b);
}
在我的组合框的 SelectChanged 方法中......
selectedUser = (User)e.AddedItems[0];
但是,文本框没有更新!我可以通过将绑定代码移动到组合框 SelectChanged 方法来验证我的绑定是否有效
selectedUser = (User)e.AddedItems[0];
Binding b = new Binding();
b.Source = selectedUser;
b.Path = new PropertyPath("uFirstName");
this.txtFirstName.SetBinding(TextBox.TextProperty, b);
现在文本框更新正常。这似乎是不正确的做事方式。谁能指出我正确的方向?