2016-05-19 3 views
0

Ich habe ein Ansichtsmodell für ein FensterWPF müssen komplexen Typ binden

public class MainWindowViewModel : ViewModelBase, INotifyPropertyChanged 
{ 
} 

Das Ansichtsmodell eine Basisklasse hat. Die Basisklasse hat einen komplexen Typ als Eigenschaft, die beim Start der App erstellt wird.

Meiner Ansicht nach muss ich an Eigenschaften in der Config-Eigenschaft binden und Änderungsbenachrichtigungen erhalten. Die Datacontext der Ansicht ist die MainWindowViewModel und ich habe eine verbindliche Aussage wie

Text="{Binding Config.Property}" 

Gibt es Tipps, wie zu tun, was ich möchte?

+0

Nicht sicher, dass die Config-Eigenschaft auf dieser Basisklasse sein sollte. Was betrifft/hat die ViewMobelbase mit dem Configuration-Objekt? Vielleicht möchten Sie in Ihrer abgeleiteten Klasse spezifischer sein, was Sie anzeigen möchten – aqwert

+0

Der Grund, warum es in der Basis ist, ist, weil es auch in anderen ViewModels benötigt wird –

+0

Sure ... aber diese "Basis" -Klasse sollte bestimmte Elemente enthalten . Vielleicht wäre ein ConfigurationViewMobel, den Sie erben, besser. Nur eine Beobachtung und nichts, was mit Ihrem Problem zu tun hat. – aqwert

Antwort

0

Was Sie dort haben, sollte gut funktionieren. Wenn sich die Config-Eigenschaft ändert, möchten Sie auch implementieren INotifyPropertyChanged und das Ereignis auslösen, wenn die Config-Eigenschaft geändert wird, ähnlich wenn sich die Eigenschaften ändern, an die Sie in der Configuration-Klasse gebunden sind und die auch geändert werden müssen Implementieren Sie INotifyPropertyChanged und erhöhen Sie die Ereignisse, wenn sich ihre Eigenschaften ändern.

+0

Alternativ können Sie auch die .net 'Settings' Klasse verwenden. Das erbt von 'ApplicationSettingsBase' und implementiert automatisch' INPC'. – Aron

+0

Das hat funktioniert. Vielen Dank! –

Verwandte Themen