Ich verwende ein MVVM-Muster in einer WPF-Anwendung und zu Lernzwecken habe ich eine Frage zu Speicherlecks.Läuft dieser OneWay-Binding-Speicher?
Ich habe die Postsharp-Bibliothek verwendet.
Mein Ansichtsmodell sieht wie folgt aus:
public class MyViewModel : INotifyPropertyChanged
{
private ClassA _myClassAField; //ClassA doesn't Implement INotifyPropertyChanged
public MyViewModel(ClassA classAParameter)
{
_myClassAField = classAParameter;
}
[NotifyPropertyChanged]
public string Name { get { return _myClassAField.Name; } }
.....//Other Code.....
}
XAML:
<Textblock Text="{Binding Name, Mode=OneWay}"/>
Frage:
Ist diese Bindung Leck-Speicher? In meinen Tests scheint es nicht zu lecken, aber ich verstehe nicht warum?
Die Bindung an den Eigenschaftsnamen ist nur ein Getter von der KlasseA, der INotifyPropertyChanged nicht implementiert.
Warum denken Sie, dass es ein Speicherleck gibt? – StepUp
ClassA implementiert nicht INotifyPropertyChanged. Und meine Eigenschaft return Der Name des ClassA-Objekts. Oder überschreibt die Name-Eigenschaft, die mit NotifyPropertyChanged markiert ist, das? –