该模型是M VVM中的第一个“ 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框架提供了许多更复杂的验证方法,但是这些方法不在本文的讨论范围之内。
本文向大家介绍wpf 视图模型,包括了wpf 视图模型的使用技巧和注意事项,需要的朋友参考一下 示例 视图模型是MV VM中的“ VM” 。这是一个充当中介的类,将暴露model(s)给用户界面(视图),并处理来自视图的请求,例如单击按钮引发的命令。这是一个基本的视图模型: 构造函数创建一个Customer模型对象,并将其分配给CustomerToEdit属性,以使视图可见。 构造函数还创建一个R
WPF(Windows Presentation Foundation) 是微软推出的用于构建桌面客户端应用程序的 UI 框架,具有应用程序模型、控件、图形、布局、数据绑定和安全性等功能,属于 .NET Framework 3.0 的一部分。它提供了统一的编程模型、语言和框架,真正做到了分离界面设计人员与开发人员的工作;同时它提供了全新的多媒体交互用户图形界面。 WPF 的核心是一个利用现代图形硬
本文向大家介绍wpf DependencyObject,包括了wpf DependencyObject的使用技巧和注意事项,需要的朋友参考一下 示例 源自于 DispatcherObject 关键成员 概要 从派生的类DependencyObject参与依赖项属性系统,该系统包括注册依赖项属性以及提供有关此类属性的标识和信息。由于依赖项属性是WPF开发的基础,因此所有WPF控件最终都源自Depen
本文向大家介绍wpf DispatcherObject,包括了wpf DispatcherObject的使用技巧和注意事项,需要的朋友参考一下 示例 源自于 Object 关键成员 概要 WPF中的大多数对象都源自DispatcherObject,它提供了用于处理并发和线程的基本构造。这些对象与分派器关联。 只有在Dispatcher上创建的线程可以直接访问DispatcherObject。若要从
本文向大家介绍wpf View,包括了wpf View的使用技巧和注意事项,需要的朋友参考一下 示例 视图是M V VM中的“ V” 。这是您的用户界面。您可以使用Visual Studio拖放式设计器,但是大多数开发人员最终都会对原始XAML进行编码,这与编写HTML相似。 这是允许编辑Customer模型的简单视图的XAML 。与其创建一个新视图,不如将其粘贴到WPF项目的MainWindow
WPF-Math WPF-Math is a .NET library for rendering mathematical formulae using the LaTeX typesetting style, for the WPF framework. It supports the following .NET runtimes: .NET Framework 4.5.2 or later