【发布时间】:2019-12-21 00:23:36
【问题描述】:
我的视图中有一个按钮,其样式为 staticResource。我在我的视图模型中有IsEnabled 绑定到bool 并且想要在禁用时更改背景。
我尝试在IsEnabled = false 上使用Style.Triggers,但这不会改变背景。
样式.xaml
<Style x:Key="buttonNegative" TargetType="Button">
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Background" Value="Green"/>
</Trigger>
</Style.Triggers>
</Style>
view.xaml
<Button Style="{StaticResource buttonNegative}" Command="{Binding InversionAxis_Command}" IsEnabled="{Binding SettingsButtonIsEnable}">
<TextBlock Text="{Binding Orientation}"/>
</Button>
viewModel.cs
private bool _settingsButtonIsEnable;
public bool SettingsButtonIsEnable
{
get { return _settingsButtonIsEnable; }
set
{
if (Equals(value, _settingsButtonIsEnable)) return;
_settingsButtonIsEnable = value;
RaisePropertyChanged();
}
}
public ICommand InversionAxis_Command
{
get { return new RelayCommand(InversionAxis, IsSettingsButtonIsEnable); }
}
private bool IsSettingsButtonIsEnable()
{
return _settingsButtonIsEnable;
}
该命令没有执行,因为我使用了 canExecute 但是当 SettingsButtonIsEnable 改变时样式没有改变
【问题讨论】:
标签: c# wpf xaml mvvm mvvm-light