私はWpfデータバインディング機能を研究するのが初めてですが、最近、1つの問題に遭遇しました。
ViewModelに次のようなコードがあると仮定します。
private Person person;
public Person Person
{
get { return person; }
set
{
SetProperty<Person>(ref person, ref value, ()=>Person);
}
}
ひどいネーミングは無視してください。次にPerson
、コマンドのExecute()メソッドで次のようにプロパティを変更しました。
//try 1
private void UpdateInfoExecute()
{
Person.Name="somebody";
Person.Age=22;
}
最後に、データバインディングが失敗しました。このように実装を変更すると、次のようになります。
//try 2
Person = new Models.Person() { Age=22,Name="somebody"};
成功します!
まあ、私の意見では、try1もtry2とPerson
同じようにのプロパティを変更しました。イベントはプロパティをリッスンし、試行1が実行された後に変更されることを確認します。PropertyChanged
Person
私はこれの理論を知りません、誰かが私が逃した鍵を私に指摘することができますか?