Feedback

C# - Model View ViewModel (MVVM) - Pattern

Veröffentlicht von am 27.02.2014
(0 Bewertungen)
Ein MVVM einzurichten ist ganz einfach. Hier eine Schritt-für-Schritt Anleitung.

1. Schritt
Erstelle eine neue Klasse (public class ...) und lasse sie von INotifyPropertyChanged erben.
public class MainViewModel : INotifyPropertyChanged{...}



2. Schritt
Implementiere 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. Schritt
Fü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. Schritt
Nun 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"); }
}
GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Administratoren - Kompakt

Nach dieser Schulung beherrschen Sie die Grundlagen des TFS. Sie erledigen administrative Aufgaben schnell und sicher.

ASP.NET Core und Angular Komplett für .NET-Entwickler

Sie  lernen in drei (3) Tagen wie man mit  ASP.NET Core und den Technologien  MVC, Entity Framework, WebAPI und  Razor professionelle sowie moderne  Web-Anwendungsarchitekturen aufbaut.  Die Schulung ist der perfekte  Einstieg um insbesondere datengetriebene  und präsentationsorientierte  Applikationen auf Basis der robusten und  skalierbaren ASP.NET Core  Plattform zu erstellen. Nach der Veranstaltung kennen Sie die Konzepte von Angular und können Angular in neue und bestehende ASP.NET-Anwendungen einsetzen.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WpfApplication74
{
    public class MainViewModel : INotifyPropertyChanged
    {

        public event PropertyChangedEventHandler PropertyChanged;

        protected void OnPropertyChanged(string info)
        {
            PropertyChangedEventHandler handler = PropertyChanged;
            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(info));
            }
        }

        public MainViewModel()
        { }


        private string _text1;
        public string Text1
        { 
            get { return _text1; }
            set { _text1 = value; OnPropertyChanged("Text1"); }
        }
    }
}
Abgelegt unter MVVM, model, view, viewmodel, pattern.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!