'使用datatrigger将颜色属性绑定到边框背景'

时间:2011-12-10 07:34:41

标签: wpf xaml mvvm

我是WPF技术的新手,我正在使用MVVM架构。当ViewModel中绑定的属性更改其值时,我希望我的边框更改颜色。让我们来看看代码:

在我的XAML中:

<Window.Resources>
 <Style TargetType="{x:Type Border}" x:Key="LineColor">
            <Setter Property="Background" Value="Transparent"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding lcolor}" Value="Blue">
                    <Setter Property="Background" Value="Green">

                    </Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
</Window.Resources>

我将它绑定到我的边界:

<Border CornerRadius="1,1,0,0" Style="{StaticResource LineColor}" >

然后在我的ViewModel中我采用了简单的字符串:

public string lcolor="Blue";

但它根本不起作用。请帮帮我。

编辑:我尝试了如下:

public Boolean lcolor
    {
            get { return (Boolean)this.GetValue(StateProperty); }
            set { this.SetValue(StateProperty, value); }
    }

    public static readonly DependencyProperty StateProperty = DependencyProperty.Register(
          "lcolor", typeof(Boolean), typeof(CallControlViewModel));

但它给了我以下错误:

  

错误9

     

“PSWGS.Client.Module.CallControl.ViewModels.CallControlViewModel”不包含“GetValue”的定义,也没有扩展方法“GetValue”接受类型为“PSWGS.Client.Module.CallControl.ViewModels.CallControlViewModel”的第一个参数'可以找到(你错过了使用指令或汇编引用吗?)

1 个答案:

答案 0 :(得分:1)

一旦您理解了所有可能回来的内容,请阅读data binding overviewabout debugging bindings

lcolorfield,需要property,您还可以查看INPC