我有一个ItemContainer的样式,它基于包含的Item(使用StyleSelector)。它工作正常。但是在运行时,属性可能会更改,但样式不会立即更新。
一旦保存更改,我是否还能让它更新?
答案 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>