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);
これで、テキストボックスが正常に更新されます。これは物事の間違ったやり方のようです。誰かが私を正しい方向に向けることができますか?