温馨提示×

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

c#
小樊
87
2024-08-22 21:00:34
栏目: 编程语言

MVVM(Model-View-ViewModel)是一种软件架构模式,用于将应用程序的用户界面逻辑与业务逻辑分离。在WPF应用程序中使用MVVM模式可以使代码更易于维护和测试。下面是一个简单的C# MVVM模式在WPF中的应用示例:

Model(数据模型):

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类作为数据模型,一个MainViewModel类作为视图模型,用于管理Person对象的数据,以及一个MainWindow作为视图,使用DataBinding将视图模型和视图进行绑定。

当运行这个示例时,窗口中会显示一个包含姓名和年龄输入框的界面,用户输入的数据会被绑定到视图模型中的Person对象上。这样就实现了视图与数据模型的分禨,使代码更易于维护和测试。

0