首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我想在MVVM模式中创建WPF解决方案

我想在MVVM模式中创建WPF解决方案
EN

Stack Overflow用户
提问于 2018-09-03 19:09:14
回答 2查看 141关注 0票数 -3

我是WPF世界的新手,我想创建一个解决方案,在那里我想写MVVM程序使用C#和XAML来执行一些简单的计算。

MainWindow xaml有一个命名的外部网格View

xaml代码隐藏(MainWindow.xaml.cs)只能包含构造函数

它将View.DataContext设置为新ViewModel类的实例。

代码语言:javascript
复制
 public partial class MainWindow : Window
 {
     public MainWindow()
     {
         InitializeComponent();
         View.DataContext = new ViewModel();
     }
 }

包含C=A+ B和D=A* B的两个结果文本框。

EN

Stack Overflow用户

回答已采纳

发布于 2018-09-03 23:29:16

ViewModel类中定义四个属性ABCD并实现INotifyPropertyChanged接口。

CD应该是只读的,并且每当AB发生更改时,您都应该引发这些PropertyChanged。这里是一个基本的例子,应该会给你一个想法:

代码语言:javascript
复制
public class ViewModel : INotifyPropertyChanged
{
    private int _a;
    public int A
    {
        get { return _a; }
        set { _a = value; NotifyPropertyChanged(nameof(C)); }
    }

    private int _b;
    public int B
    {
        get { return _b; }
        set { _b = value; NotifyPropertyChanged(nameof(C)); }
    }

    public int C => _a + _b;

    public event PropertyChangedEventHandler PropertyChanged;
    public void NotifyPropertyChanged([CallerMemberName] String propertyName = "") =>
         PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

}

后台更改可以通过处理TextBoxesMouseEnterMouseLeave事件并将窗口的Background属性设置为Brush来实现。此功能纯粹与视图相关,不应在视图模型中实现。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52148565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档