我是WPF世界的新手,我想创建一个解决方案,在那里我想写MVVM程序使用C#和XAML来执行一些简单的计算。
MainWindow xaml有一个命名的外部网格View。
xaml代码隐藏(MainWindow.xaml.cs)只能包含构造函数
它将View.DataContext设置为新ViewModel类的实例。
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
View.DataContext = new ViewModel();
}
}包含C=A+ B和D=A* B的两个结果文本框。
发布于 2018-09-03 23:29:16
在ViewModel类中定义四个属性A、B、C和D并实现INotifyPropertyChanged接口。
C和D应该是只读的,并且每当A或B发生更改时,您都应该引发这些PropertyChanged。这里是一个基本的例子,应该会给你一个想法:
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));
}后台更改可以通过处理TextBoxes的MouseEnter和MouseLeave事件并将窗口的Background属性设置为Brush来实现。此功能纯粹与视图相关,不应在视图模型中实现。
https://stackoverflow.com/questions/52148565
复制相似问题