TextBox中的数据无效—如何禁用命令按钮?

| 基本上我有以下情况:
<TextBox Text=\"{Binding MyIntValue}\" />
<Button prism:Click.Command={Binding MyCommand}\" />
public Boolean CanDoCommand()
{
    return (MyIntValue < 100);
}

public void DoCommand() { ... }
因此,这就是问题所在,如果我输入25的值,则MyCommand将被启用。之后,如果我将其更改为25A,则该按钮仍处于启用状态,因为未更新绑定以反映ViewModel中的错误。相反,我的视图上只有一个绑定错误。这将使MyCommand按钮处于启用状态,而MyIntValue仍为25。 即使ViewModel正确,如何基于绑定问题禁用按钮? 编辑(发帖人真正要求的):   无论如何,我如何禁用按钮   CanExecute方法返回的内容   从基于View的ViewModel   有BindingError吗?     
已邀请:
        
<Button prism:Click.Command={Binding MyCommand, 
    UpdateSourceTrigger=PropertyChanged}\" /> 
    
        当MyIntValue更改时,必须引发命令可以执行更改的事件。     
        如果MyIntValue属性为int类型,则输入为25A时,绑定将永远不会更新。 解决此问题的唯一方法是在VM端使用字符串类型和IDataErrorInfo。 另一种方法是使用typeof Nullable int和一个转换器,并将其值设置为null(如果它不是您期望的值)。 编辑:   即使ViewModel正确,如何基于绑定问题禁用按钮? 您的问题是您的VM和UI不同步。如果键入25A,则您的Vm似乎正确,因为它仍然具有25A,但是您的View包含BindingError。所以您的问题应该是如何同步我的视图和视图模型。 (请参阅我的两个建议) 编辑: 另一个解决方案是防止错误输入。因此Masked或RegexTextbox行为也应该起作用。     

要回复问题请先登录注册