C# 通过WPF命令模式启用提交/取消按钮
“我的视图”包含以下两个按钮:C# 通过WPF命令模式启用提交/取消按钮,c#,wpf,mvvm,C#,Wpf,Mvvm,“我的视图”包含以下两个按钮: <StackPanel Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center"> <Button Content="Start" Width="100" Height="30" Margin="20" Command="{Binding OkCommand}"/> <But
<StackPanel Grid.Row="0" Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Center">
<Button Content="Start" Width="100" Height="30" Margin="20" Command="{Binding OkCommand}"/>
<Button Content="Cancel" Width="100" Height="30" Margin="20" Command="{Binding CancelCommand}"/>
</StackPanel>
问题:我希望按钮的行为是opp-这意味着当一个按钮被点击(提交)时,另一个按钮应该被禁用,反之亦然。首次加载表单时,默认情况下启用“提交btn”
我尝试了多种方法,但似乎无法实现
我在这里编写的是简单的MVVM代码,没有prism/事件聚合器概念
人们可以推荐(使用代码示例)这样的命令bheavior通常是如何处理的。为什么您的命令不能引发ICommand.CanExecuteChanged事件?查看更新的代码-它包含所有事件-只是似乎不知道如何访问那里的btnState并将其设置为true或false谢谢Denis-这很有魅力!!!我一直在练习将按钮行为绑定到文本框(无论是否输入了值),因此这对我来说是一个难题。虽然一旦实现了这个解决方案,它就非常有意义。再次感谢
private bool IsOkToExecute
{
get { return _isOkToExecute; }
set
{
_isOkToExecute = value;
RaisePropertyChanged("IsOkToExecute");
}
}
private void myOkExecute (object parameter)
{
IsOkToExecute = false;
}
private void myCancelExecute(object parameter)
{
IsOkToExecute = true;
}
private bool myCanOkExecute(object parameter)
{
return IsOkToExecute;
}
private bool myCanCancelExecute(object parameter)
{
return !IsOkToExecute;
}
private bool IsOkToExecute
{
get { return _isOkToExecute; }
set
{
_isOkToExecute = value;
RaisePropertyChanged("IsOkToExecute");
}
}
private void myOkExecute (object parameter)
{
IsOkToExecute = false;
}
private void myCancelExecute(object parameter)
{
IsOkToExecute = true;
}
private bool myCanOkExecute(object parameter)
{
return IsOkToExecute;
}
private bool myCanCancelExecute(object parameter)
{
return !IsOkToExecute;
}