Ein MVVM einzurichten ist ganz einfach. Hier eine Schritt-für-Schritt Anleitung.
1. SchrittErstelle eine neue Klasse (public class ...) und lasse sie von INotifyPropertyChanged erben.
public class MainViewModel : INotifyPropertyChanged{...}
2. SchrittImplementiere die vom Interface notwendigen Methoden.
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string info)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(info));
}
}
3. SchrittFüge in der deinem MainWindow den DataContext dem ViewModel hinzu.
public MainWindow()
{
InitializeComponent();
ViewModel = new MainViewModel();
}
public MainViewModel ViewModel
{
get { return this.DataContext as MainViewModel; }
set { this.DataContext = value; }
}
4. SchrittNun kannst du im XAML die Eigenschaften von Controls an dein ViewModel binden. Hier ein kleines Beispiel :
<TextBox Text="{Binding Text1, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
Der Text der TextBox wird an Text1 gebunden. Jedesmal, wenn sich dieser Wert ändert, wird auch das ViewModel benachrichtigt und übernimmt diesen Wert, beidseitig.
Im ViewModel sieht diese Property wie folgt aus :
private string _text1;
public string Text1
{
get { return _text1; }
set { _text1 = value; OnPropertyChanged("Text1"); }
}