小编pab*_*ity的帖子

如何使用 MVVM 通过命令正确实现 TextChanged 事件

我正在使用 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)

c# wpf mvvm icommand

3
推荐指数
1
解决办法
2181
查看次数

标签 统计

c# ×1

icommand ×1

mvvm ×1

wpf ×1