基于视图模型属性更新的Silverlight行为

时间:2009-11-26 15:17:04

标签: silverlight silverlight-3.0 datacontext viewmodel behavior

我希望通过更改页面视图模型中的属性来触发Silverlight行为。但是,我无法弄清楚如何做到这一点。

所以,我有一个非常简单的视图模型:

public class MyViewModel : INotifyPropertyChanged
{
    private bool changingProperty;
    public bool ChangingProperty
    {
        get { return changingProperty; }
        set
        {
            if (changingProperty != value)
            {
                changingProperty = value;
                NotifyPropertyChanged("ChangingProperty");
            }
        }
    }
    public string SomeProperty { get { return "SomePropertyValue"; } }

    // INotifyPropertyChanged implementation here.......
}

此视图模型是具有绑定到SomeProperty的文本块的用户控件的数据上下文:

<TextBlock x:Key="myTextBlock" Text="{Binding SomeProperty}" />

一切正常。现在,我想将myTextBlock的行为附加到我的视图模型中ChangingProperty的更改触发的行为。例如,行为应突出显示TextBlock(或更复杂的东西)。

如何指定此触发器?这有可能吗?

亲切的问候,

罗纳德

1 个答案:

答案 0 :(得分:1)

我对类似问题here的回答可能有所帮助。

以下是如何将该技术应用于您的要求的示例。

<Grid.Resources>
   <local:BoolToBrushConverter x:Key="Highlighter"
    FalseBrush="Transparent" TrueBrush="Yellow" />
</Grid.Resources>

<Border Background="{Binding ChangingProperty, Converter={StaticResource Highlighter}}">
    <TextBlock x:Name="txtTarget" Text="{Binding SomeProperty}" />
</Border>