在wpf中更新运行时的样式

时间:2011-07-12 17:30:39

标签: wpf user-interface xaml styles

我有一个ItemContainer的样式,它基于包含的Item(使用StyleSelector)。它工作正常。但是在运行时,属性可能会更改,但样式不会立即更新。

一旦保存更改,我是否还能让它更新?

2 个答案:

答案 0 :(得分:1)

使用绑定。然后,您需要实现INotifyPropertyChanged。您设置的值应该是属性,并且在setter的末尾,引发属性更改事件。

如果您举例说明您的XAML,我可以为您写出来。

答案 1 :(得分:1)

使用DataTrigger和Converter返回对象的类型

例如,

<Style.Triggers>
    <DataTrigger Binding="{Binding Converter=ObjectToTypeConverter}" 
                 Value="{x:Type local:Person}">
        <Setter Property="ItemTemplate" Value="{Binding PersonTemplate}" />
    </DataTrigger>
    <DataTrigger Binding="{Binding Converter=ObjectToTypeConverter}" 
                 Value="{x:Type local:Business}">
        <Setter Property="ItemTemplate" Value="{Binding BusinessTemplate}" />
    </DataTrigger>
</Style.Triggers>