使用BooleanToVisibilityConverter的WPF MVVM隐藏按钮
在我的WPF应用程序中,我试图根据用户选择的选项更改按钮的可见性。 在加载时,我希望其中一个按钮不可见。 我正在使用内置值转换器BooleanToVisibilityConverter。 然而,由于按钮在加载时出现,它无法正常工作。 我已将属性更改为true和false,没有任何区别。 下面是我的代码,我看不出我错过了什么?
我的View模型中的属性
bool ButtCancel { get { return _buttCancel; } set { _buttCancel = value; OnPropertyChanged("ButtCancel"); } }
在我的app.xaml中
在我的MainWindow.xaml中
对于初学者来说,如果你使用的是Command,那么你不需要绑定IsEnabled,命令实现应该决定这一点。
其次,ViewModel与View的绑定往往会在稍后阶段发生,因此最好也为绑定设置默认值,如此
Visibility="{Binding ButtCancel, Converter={StaticResource BoolToVis}, FallbackValue=Hidden}"
第三,正如Mike指出的那样,确保您的属性是公共的,因为ViewModel和View是两个独立的类。
您可以使用DataTrigger
,而不是使用转换器。
将ViewModel的属性更新为public
public bool ButtCancel { get { return _buttCancel; } set { _buttCancel = value; OnPropertyChanged("ButtCancel"); } }
并确保MainWindow
的DataContext设置为ViewModel
。