我一直在使用从文章(RelayCommand
)复制来的probably this one,下面的CreateExamCommand
可以正常工作,并且CanExecute
绑定到`Name是否为空。
<UniformGrid Columns="2" DockPanel.Dock="Bottom">
<Button Content="Cancel" Command="{Binding CancelCommand}" HorizontalAlignment="Left"/>
<Button Content="Create" Command="{Binding CreateExamCommand}" HorizontalAlignment="Right"/>
</UniformGrid>
<StackPanel VerticalAlignment="Center">
<TextBox Name="textBox" Tag="Exam Name"
Text="{Binding Name, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" />
public RelayCommand CreateExamCommand => new RelayCommand(
() => CreateExam(Name, Date),
() => !string.IsNullOrEmpty(_name)
);
但是,我刚刚安装了MVVMLightLibs,以替换我手动复制的代码(并删除了我的RelayCommand
版本)。现在CanExecute
的CreateExamCommand
方法已损坏。
我在WriteLine
中放入了一些CanExecute
,它似乎仅在首次加载视图(模型)时运行。
我该如何解决?
取决于您所使用的MVVMLight的RelayCommand版本。
如果您具有名称空间“ GalaSoft.MvvmLight.CommandWpf”,则您的命令将使用CommandManager对象,并在每次击键或单击鼠标后自动刷新CanExecute。
我该如何解决?