WPF ComboBoxItem Изменение фона, когда ComboBox SelectedIndex равен -1 - PullRequest
0 голосов
/ 03 декабря 2010

Я пытаюсь установить цвет фона WPF ComboBox, когда SelectedIndex равен -1 в XAML.Я попытался установить цвет фона в триггере, но получил ошибку, сообщающую, что я не могу установить привязку в свойстве триггера.

спасибо

<ComboBox 
                    x:Name="cbFormNameList" 
                    ItemsSource="{Binding}" 
                    DisplayMemberPath="Name" 
                    SelectedValuePath="Name">
                <ComboBox.Style>
                    <Style TargetType="{x:Type ComboBoxItem}">
                        <Style.Triggers>
                            <Trigger Property="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=SelectedIndex}" Value="-1">
                                <Setter Property="Background" Value="#FFFAFFA9"/>
                            </Trigger>
                        </Style.Triggers>
                    </Style>
                </ComboBox.Style>
            </ComboBox>

Ответы [ 2 ]

2 голосов
/ 03 декабря 2010

Ваши свойства TargetType и Trigger неверны. Попробуйте следующее, это работает. Поле со списком начнется желтым и изменится при изменении выбора.

<ComboBox>
        <ComboBoxItem>
            Test
        </ComboBoxItem>
        <ComboBox.Style>
            <Style TargetType="ComboBox">
                <Style.Triggers>
                    <Trigger Property="SelectedIndex" Value="-1">
                        <Setter Property="Background" Value="#FFFAFFA9"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </ComboBox.Style>
    </ComboBox>
2 голосов
/ 03 декабря 2010

Ваш стиль нацелен на ComboBoxItem, а не на сам комбинированный список. Ниже будет меняться фон ComboBox, когда ничего не выбрано:

<ComboBox.Style>
    <Style TargetType="{x:Type ComboBox}">
        <Style.Triggers>
            <Trigger Property="SelectedIndex" Value="-1">
                <Setter Property="Background" Value="#FFFAFFA9"/>
            </Trigger>
        </Style.Triggers>
    </Style>
</ComboBox.Style>

Стиль должен быть нацелен на ComboBox напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...