平,
我尝试将Button背景绑定到我的viewmodel中的属性。这就是我所拥有的:
private bool _LoginSuccessful;
public bool LoginSuccessful
{
get { return _LoginSuccessful; }
set
{
_LoginSuccessful = value;
RaisePropertyChanged("LoginSuccessful");
RaisePropertyChanged("ButtonBackground");
}
}
public Brush ButtonBackground
{
get
{
return LoginSuccessful ? Brushes.Red : Brushes.LimeGreen;
}
}
xaml看起来像这样:
<Button Content="{Binding CurrentStatus}"
Background="{Binding ButtonBackground}"
Width="300"Margin="2" />
问题是按钮背景永远不会改变..当我打开应用程序并且更改LoginSuccessful
时,它仍然是白色,它仍然保持白色。
修改
我在我的应用程序中使用MahApps.Metro,按钮样式来自: https://github.com/MahApps/MahApps.Metro/blob/master/MahApps.Metro/Styles/Controls.Buttons.xaml
这可能会混淆我的绑定无法正常工作吗?
SOLUTION:
我的问题与Mahapps.Metro没有任何关系。这只是我使用Brush
而不是SolidColorBrush
的原因。这是来自视图模型的工作代码:
public SolidColorBrush ButtonBackground
{
get
{
return LoginSuccessful ? new SolidColorBrush(Colors.Red) : new SolidColorBrush(Colors.LimeGreen);
}
}