使用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