【发布时间】:2020-05-15 14:29:26
【问题描述】:
我一直在使用从一篇文章 (probably this one) 中复制的RelayCommand,下面的CreateExamCommand 工作正常,CanExecute 绑定到“名称是否为空”。
XAML
<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}" />
Csharp
public RelayCommand CreateExamCommand => new RelayCommand(
() => CreateExam(Name, Date),
() => !string.IsNullOrEmpty(_name)
);
但是,我刚刚安装了 MVVMLightLibs,以替换我手动复制的代码(并删除了我的 RelayCommand 版本)。现在CreateExamCommand的CanExecute方法坏了。
我在CanExecute 中放了一些WriteLines,它似乎只在第一次加载视图(模型)时运行。
我该如何解决这个问题?
【问题讨论】:
标签: c# wpf mvvm-light