阅读量:0
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对象上。这样就实现了视图与数据模型的分禨,使代码更易于维护和测试。