我正在使用 MVVM 模式学习 WPF。我的应用程序正在计算体重指数,所以它真的很简单 - 只是为了帮助我理解这种模式的基础。
我进行了一些试验,并决定通过命令实现 TextChanged 事件,以允许用户在输入身高或体重时看到整体 BMI 标签的变化。
我在其中使用 TextChanged 命令的文本框在 TwoWay 模式下绑定到 ViewModel 属性,因此我认为如果在发生 TextChanged 事件时在绑定到这些文本框的属性上引发 INotifyPropertyChanged 事件,它将自动更新视图,但它不会。
所以问题是,我做错了什么,我该如何正确实施?
附注。除了视图更新之外的所有其他工作都在工作(使用命令,我用断点检查它只是不会改变视图)
提前致谢
自定义命令类:
public class CustomCommand : ICommand
{
Action<object> action;
Predicate<object> predicate;
public CustomCommand(Action<object> execute, Predicate<object> canExecute)
{
action = execute;
predicate = canExecute;
}
public event EventHandler CanExecuteChanged
{
add
{
CommandManager.RequerySuggested += value;
}
remove
{
CommandManager.RequerySuggested -= value;
}
}
public bool CanExecute(object parameter)
{
if (predicate(parameter))
return true;
else
return false;
} …Run Code Online (Sandbox Code Playgroud)