Datatrigger仅在窗口初始化期间更新样式

时间:2015-02-18 07:57:20

标签: c# wpf datatrigger

我刚刚发现了数据触发器的强大功能,现在我试图根据我绑定的类型中的布尔属性来更改列表框中每个项目的背景。

这是样式设置:

<Style x:Key="InvalidSettingStyle" TargetType="StackPanel">
    <Style.Triggers>
        <DataTrigger Binding="{Binding Path=ValidSetting}" Value="false">
            <Setter Property="Background" Value="Red"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

这是我使用的Datatemplate:

<DataTemplate  x:Key="ComboBoxTemplate" DataType="self:ListBoxComboBoxElement">
    <StackPanel Orientation="Vertical" Style="{StaticResource InvalidSettingStyle}">
        <CheckBox IsChecked="{Binding IsActive}" Content="{Binding Content}"/>
        <ComboBox ItemsSource="{Binding Path= FirstComboBox.Items}"  
            SelectedItem="{Binding Path=FirstComboBox.SelectedRevitElement}" 
            SelectionChanged="ComboBox_SelectionChanged"/>            
    </StackPanel>
</DataTemplate>

我意外地使用您在上面看到的DataTrigger设置运行它,而无需在加载表单之前将ValidSetting属性设置为true,它们都变为红色。所以有某种连接,但我无法在加载时更改背景。

我所有的其他绑定都像魅力一样。 这些项位于与Listbox的Itemsource属性绑定的observablecollection中。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

需要INotifyPropertyChanged。 当我有一个可观察的集合时,我非常确定我不需要它。

感谢您的帮助!