WPF Simple Model Binding

WPF Bindings sind eine super Möglichkeit um ein Model/Klasse bequem auf der View auszugeben. Dies hat viele Vorteile wie leichtes Updaten, eine enorme Codeeinsparung, veringerung der Komplexität, Updaten des Models on the fly usw.
In diesem Schnellbeispiel geht es aber nur um die Basics. Ich zeige eine Möglichkeit (ja es gibt mehrere Möglichkeiten, aber die mag ich und es funktioniert) die View in WPF an eine Klasse zu binden. Also über INotifyPropertyChanged, OneWay/TwoWay, passende Nuget Packages etc. erfährt man hier dazu nichts. Ich persönlich finde das Thema aber sonst zu mächtig.

Zuerst wird ein ViewModel, also eine simple Klasse erzeugt mit einem eigenen Namespace und den gewünschten Properties.

//ViewModel.cs sample ViewModel class
namespace ViewModelNamespace //namespace name!
{
    class ViewModelClass // model/class name!
    {
        public string TextboxText {
            get {
                return "Text from ViewModel class";
            }
            set
            {
            }
        }

        public List ItemListContent {
            get
            {
                return new List() { "ViewModel Item 1", "ViewModel Item 2", "ViewModel Item 3" };
            }
            set
            {
            }
        }
    }
}

Dann wird im in der *.xaml Datei gearbeitet und erst mal der Namespace des ViewModel hinzugefügt.

//in xaml

Gleich unter wird folgender Code eingefügt. Es wird die ViewModel Klasse in den Key vm gespeichert um den DataContext setzen zu können.

//in xaml below 

	//change ViewModelClass to classname of your class that contains the view model
	

Nun wird der DataContext des Models/Klasse auf das Grid gesetzt um die Properties ansprechen zu können (am einfachsten das äußeste Grid, das bei Projekterstellung vorab angelegt wird unter <window.resources> . Dann kann darauf gebinded werden wodurch Daten aus dem Model direkt auf der View ausgegeben werden können.

 //set data context to the ViewModel class
	//samle textbox with binding
	 //bind textbox value to property in ViewModel
	
	//sample listview with binding
	 	
		 	
			
				
			
		
	

Fertiges Demoprojekt downloaden:


Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert