绑定到ICommand的WPF按钮未激发



我有一个绑定到ICommand接口的Button,但在运行应用程序时它不会被激发。

当应用程序运行时,应该禁用该按钮,在ICommand或CanUpdate中放置断点,但没有命中。

据我所见,ICommand似乎已经正确实现了——为了简单起见,已经在CanUpdate中替换了值。。。

挠着头锻炼,少了什么?。。。。

XAML

<StackPanel Orientation="Horizontal" Grid.Row="1" Grid.Column="1">                          
<RadioButton Width="64" IsChecked="{Binding Passed}"  GroupName="T1">Yes</RadioButton> 

<RadioButton Width="64" IsChecked="{Binding Passed, Converter={StaticResource InverseBoolRadioConverter}}" GroupName="T1" >No</RadioButton>
</StackPanel >
Button Command="{Binding UpdateHasPassed}" Content="Update"></Button>

代码背后:-

private RelayCommand hasPassed;
public bool Passed
{
get
{
return passed;
}
set
{       
if (passed !=value )
{
passed = value;
OnPropertyChanged();
}
}
}
public ICommand HasPassed
{
get
{
if (hasPassed == null)
{
haspassed = new RelayCommand( param => CanUpdate());
}
return haspassed;
}
}
private bool CanUpdate()
{
return (1 != 2)
}

您正朝着正确的方向研究INotifyPropertyChanged。我还建议阅读WPF数据绑定、ICommand接口(特别是创建RelayCommand,稍后会详细介绍(和MVVM设计。

WPF数据绑定和ICommand的好处是,您可以根据条件条件(即名称已从其原始值更改(控制按钮的启用或禁用时间。有了这里提到的技巧,你应该能够在短时间内做你想做的事。只要在谷歌上搜索每个主题,你就会得到你需要的东西。

相关内容

  • 没有找到相关文章

最新更新