当前位置: 首页 > 编程笔记 >

wpf 模型

云远
2023-03-14
本文向大家介绍wpf 模型,包括了wpf 模型的使用技巧和注意事项,需要的朋友参考一下

示例

该模型是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

    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