WPF ComboBox - Показ чего-то другого при выборе значения

Я предпочитаю использовать следующую команду:

:set fileformat=unix

можно также использовать mac или dos для соответствующего преобразования файла в макинтош или соглашение файла MS-DOS/MS Windows. И это ничего не делает, если файл уже находится в правильном формате.

Для получения дополнительной информации, посмотрите справку энергии:

:help fileformat
7
задан Gus Cavalcanti 17 July 2009 в 18:54
поделиться

3 ответа

Поместите триггер в DataTemplate. Триггер должен проверить свойство IsSelected (для работы DataTemplate потребуется набор TargetType). Если он выбран, вы можете установить для видимости ваших текстовых блоков значение «Свернуто» и установить для видимости изображения значение «Видимость». Затем сделайте обратное для случая, когда он не выбран.

5
ответ дан 6 December 2019 в 05:55
поделиться

Вот решение:

    <ComboBox>
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <ContentControl x:Name="content" Content="{Binding}" ContentTemplate="{StaticResource ComplexTemplate}"/>
                </StackPanel>
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=ComboBoxItem}}" Value="{x:Null}">
                        <Setter TargetName="content" Property="ContentTemplate" Value="{StaticResource SimpleTemplate}"/>
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>

По сути, вы создаете здесь еще один уровень DataTemplate. ItemTemplate ComboBox всегда остается неизменным. Но содержимое внутри этого шаблона подстраивается под интересующее вас условие.

Уловка, позволяющая отличить выпадающие элементы combobox от элемента combobox selected-area, заключается в том, что selected-area на самом деле не заключена в объект ComboBoxItem, это часть ComboBox контролировать себя. Итак, FindAncestor для ComboBoxItem возвращает значение null, которое мы используем в приведенном выше триггере.

18
ответ дан 6 December 2019 в 05:55
поделиться

Понял. Мне просто нужно было добавить в свой ComboBox следующее:

IsEditable="True" IsReadOnly="True" TextSearch.TextPath="FirstName"
6
ответ дан 6 December 2019 в 05:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: