溫馨提示×

C# MVVM模式在WPF中的應用示例

c#
小樊
87
2024-08-22 21:00:34
欄目: 編程語言

MVVM(Model-View-ViewModel)是一種軟件架構模式,用于將應用程序的用戶界面邏輯與業(yè)務邏輯分離。在WPF應用程序中使用MVVM模式可以使代碼更易于維護和測試。下面是一個簡單的C# MVVM模式在WPF中的應用示例:

Model(數(shù)據(jù)模型):

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

ViewModel(視圖模型):

public class MainViewModel : INotifyPropertyChanged
{
    private Person _person;

    public Person Person
    {
        get { return _person; }
        set
        {
            _person = value;
            OnPropertyChanged(nameof(Person));
        }
    }

    public MainViewModel()
    {
        Person = new Person { Name = "John Doe", Age = 30 };
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

View(視圖):

<Window x:Class="MVVMExample.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:MVVMExample"
        Title="MVVM Example" Height="200" Width="300">
    <Window.DataContext>
        <local:MainViewModel/>
    </Window.DataContext>
    
    <Grid>
        <StackPanel>
            <TextBlock Text="Name:"/>
            <TextBox Text="{Binding Person.Name, Mode=TwoWay}"/>
            
            <TextBlock Text="Age:"/>
            <TextBox Text="{Binding Person.Age, Mode=TwoWay}"/>
        </StackPanel>
    </Grid>
</Window>

在這個示例中,我們定義了一個簡單的Person類作為數(shù)據(jù)模型,一個MainViewModel類作為視圖模型,用于管理Person對象的數(shù)據(jù),以及一個MainWindow作為視圖,使用DataBinding將視圖模型和視圖進行綁定。

當運行這個示例時,窗口中會顯示一個包含姓名和年齡輸入框的界面,用戶輸入的數(shù)據(jù)會被綁定到視圖模型中的Person對象上。這樣就實現(xiàn)了視圖與數(shù)據(jù)模型的分禨,使代碼更易于維護和測試。

0