wpf 模型
示例
该模型是MVVM中的第一个“M”。该模型通常是一个类,其中包含您要通过某种用户界面公开的数据。
这是一个非常简单的模型类,它具有几个属性:
public class Customer : INotifyPropertyChanged
{
private string _forename;
private string _surname;
private bool _isValid;
public event PropertyChangedEventHandler PropertyChanged;
/// <summary>
///客户的名字。
/// </summary>
public string Forename
{
get
{
return _forename;
}
set
{
if (_forename != value)
{
_forename = value;
OnPropertyChanged();
SetIsValid();
}
}
}
/// <summary>
///客户姓氏。
/// </summary>
public string Surname
{
get
{
return _surname;
}
set
{
if (_surname != value)
{
_surname = value;
OnPropertyChanged();
SetIsValid();
}
}
}
/// <summary>
///指示模型是否处于有效状态。
/// </summary>
public bool IsValid
{
get
{
return _isValid;
}
set
{
if (_isValid != value)
{
_isValid = value;
OnPropertyChanged();
}
}
}
/// <summary>
///设置IsValid属性的值。
/// </summary>
private void SetIsValid()
{
IsValid = !string.IsNullOrEmpty(Forename) && !string.IsNullOrEmpty(Surname);
}
/// <summary>
///引发PropertyChanged事件。
/// </summary>
/// <param name="propertyName">Name of the property.</param>
private void OnPropertyChanged([CallerMemberName] string propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}此类实现INotifyPropertyChanged暴露PropertyChanged事件的接口。只要其中一个属性值发生更改,就应引发此事件-您可以在上面的代码中看到此操作。该PropertyChanged事件是WPF数据绑定机制中的关键部分,因为没有它,用户界面将无法反映对属性值所做的更改。
该模型还包含一个非常简单的验证例程,该例程从属性设置器中调用。它设置一个公共属性,指示模型是否处于有效状态。我已经包含了此功能,以演示WPF命令的“特殊”功能,稍后您将看到。WPF框架提供了许多更复杂的验证方法,但是这些方法不在本文的讨论范围之内。
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练