绑定按钮背景不起作用

时间:2014-11-23 14:37:17

标签: c# wpf xaml mvvm

平,

我尝试将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);
    }
}

0 个答案:

没有答案