В моем приложении WPF я пытаюсь изменить видимость кнопки в зависимости от параметров, выбранных пользователем. При загрузке я хочу, чтобы одна из кнопок не была видимой. Я использую встроенный преобразователь значений BooleanToVisibilityConverter. Однако он не работает, когда кнопка появляется во время загрузки. Я изменил свойство как на true, так и на false, не имеет значения. Ниже мой код, я не вижу, что мне не хватает?WPF MVVM скрывает кнопку с помощью BooleanToVisibilityConverter
Свойство в моей модели Посмотреть
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'? Он не имеет модификатора доступа в выдержке кода, что сделает его «закрытым» и, таким образом, невидимым для механизма привязки. Кроме того, вы не должны связывать свойство IsEnabled; пусть кнопка использует обратный вызов вашей команды 'CanExecute' для определения своего собственного состояния. –
@MikeStrobel, безусловно, модификатор доступа по умолчанию - 'internal', а не' private'. – Sheridan
Да не могу поверить, я пропустил это! Он не был общедоступным. – mHelpMe