wpf mvvm 包含model的示例
时间: 2023-07-16 14:17:25 浏览: 100
下面是一个简单的 WPF MVVM 示例,其中包含一个 Model 类:
Model 类:
```csharp
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
```
ViewModel 类:
```csharp
public class PersonViewModel : INotifyPropertyChanged
{
private Person _person;
public PersonViewModel()
{
_person = new Person();
}
public string Name
{
get { return _person.Name; }
set
{
if (_person.Name != value)
{
_person.Name = value;
OnPropertyChanged("Name");
}
}
}
public int Age
{
get { return _person.Age; }
set
{
if (_person.Age != value)
{
_person.Age = value;
OnPropertyChanged("Age");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
```
View 类:
```xaml
<Window x:Class="PersonView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:MyNamespace"
Title="PersonView" Height="300" Width="300">
<Grid>
<StackPanel>
<TextBox Text="{Binding Name, Mode=TwoWay}" />
<TextBox Text="{Binding Age, Mode=TwoWay}" />
</StackPanel>
</Grid>
</Window>
```
在 ViewModel 中,我们创建了一个 Person 对象,并在 ViewModel 中公开了 Name 和 Age 属性。在 View 中,我们使用数据绑定将 Text 属性绑定到 ViewModel 中的属性。这样,在 View 中输入的任何更改都将自动更新到 ViewModel 中的属性,并在 Model 中保留更新。
阅读全文