在我的WPF应用程序中,我试图根据用户选择的选项更改按钮的可见性。在加载时,我希望其中一个按钮不可见。我正在使用内置值转换器BooleanToVisibilityConverter。然而它没有起作用,因为按钮在加载时出现了。我已经将属性更改为true和false,但没有任何区别。以下是我的代码,我看不到我错过了什么?
在我的视图模型中的属性
在我的视图模型中的属性
bool ButtCancel
{
get { return _buttCancel; }
set
{
_buttCancel = value;
OnPropertyChanged("ButtCancel");
}
}
在我的app.xaml文件中
<Application.Resources>
<BooleanToVisibilityConverter x:Key="BoolToVis"/>
在我的MainWindow.xaml文件中
<Button Grid.Column="2"
Command="{Binding CommandButtProgressCancel}"
Content="Cancel"
Visibility="{Binding ButtCancel, Converter={StaticResource BoolToVis}}"
IsEnabled="{Binding ButtCancelEnabled}"
Height="50" Width="120"
HorizontalAlignment="Center"
VerticalAlignment="Center" Margin="0,0,50,20"/>
ButtCancel
属性是不是public
的?根据你所提供的代码片段中没有任何访问修饰符,这会将其设置为默认的private
,从而无法被绑定引擎识别。另外,你也不应该绑定IsEnabled
属性;应该让按钮使用你的命令的CanExecute
回调来确定它自己的状态。 - Mike Strobelinternal
而不是private
。 - Sheridaninternal
;对于类成员(包括嵌套类型声明),默认为private
。 - Mike Strobel