将ListBox选中的颜色绑定到SelectedItem的属性

时间:2012-11-02 19:53:58

标签: wpf xaml data-binding windows-8

我有一个ListBox控件绑定到ObservableCollection<ToDoCategory> ItemsSource="{Binding Categories}。在ToDoCategory内,有CategoryNameCategoryColor(两个字符串)。 CategoryName绑定在ItemTemplate内。现在,我想要做的是根据ListBox更改CategoryColor中所选类别的颜色。我已经有字符串刷IValueConverter,它返回SolidColorBrush字符串。它也在页面资源中正确定义。我知道我需要改变ItemContainerStyle。目前,我有这样的事情:

<Style x:Key="CategoryListBoxContainerStyle" TargetType="ListBoxItem">
Setter Property="Template">
    <Setter.Value>
        <ControlTemplate TargetType="ListBoxItem">
            <Border...>
            <VisualStateManager.VisualStateGroups>
                <VisualState x:Name="Selected">
                    <Storyboard>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Background" Storyboard.TargetName="InnerGrid">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="{Binding CategoryColor, Converter=StringToBrushConverter}"/>
                        </ObjectAnimationUsingKeyFrames>
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Foreground" Storyboard.TargetName="ContentPresenter">
                            <DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ListBoxItemSelectedForegroundThemeBrush}"/>
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </VisualState>
                .
                .
                .
</style>

这不起作用。如何将InnerGrid的背景绑定到CategoryColor的<{1}}?

0 个答案:

没有答案