Hier ist ein vereinfachtes Beispiel, was ich brauche:
Ich habe Klasse A, die eine Eigenschaft Name haben. Die Name-Eigenschaft wird asynchron geändert und es gibt keine Möglichkeit zu wissen, wann die Änderung auftritt.
Um den aktualisierten Wert in der Ansicht anzuzeigen, verdrahtete ich ein propertychanged
Ereignis darin und binde es mit {Binding A.Name}
. In der VM funktioniert es gut.
Aber in meinem Fall, es gibt eine Menge von benutzerdefinierten Eigenschaften, die in der Klasse A. nicht einmal propertychanged
Ich denke sein sollen, ist in der Klasse A angehoben, erhält die Name
Eigenschaft in AViewModel
sollte die zu OnPropertyChanged
Erkennen, wenn eine OnPropertyChanged auftritt
Gibt es eine Möglichkeit, dies zu tun?
C#:
public class A : BaseViewModel
{
string name;
public string Name
{
get { return name; }
set { Set(()=> Name, ref name, value); }
}
}
public class AViewModel : BaseViewModel
{
A a;
public A A
{
get { return a; }
set { Set(()=> A, ref a, value); }
}
public string Name
{
get { return A.Name; }
set { Set(()=> Name, ref A.Name, value); }
}
}
XAML:
<TextBox Text="{Binding Name}" />
haben Sie in der Setter auf Ihrem Namen "RaisePropertyChanged" versucht Eigenschaft, dann 'UpdateSourceTrigger = PropertyChanged' nach der Bindung an die Textbox? – tCoe