Как изменить стиль последнего элемента в ItemSource с помощью WPF и XAML? - PullRequest
0 голосов
/ 06 мая 2018

У меня есть приложение, написанное с использованием c # и WPF на вершине Prism 6.

Я пытаюсь отобразить для пользователя «хлебные крошки», чтобы они могли нажать на предыдущую ссылку, чтобы вернуться на предыдущую страницу. Я хочу, чтобы хлебный краб выглядел так

Домашняя страница >> Родительская категория >> Родительская категория >> Дочерняя категория

Таким образом, «Дом», «Родительская категория» и «Родительская категория» могут быть кликабельными, после которых следует символ «>>». Но последний элемент (т. Е. «Дочерняя категория») не активируется и не сопровождается символом «>>».

Вот что я сделал, используя XAML

<!-- Breadcrubs -->
<ItemsControl ItemsSource="{Binding BreadcrumbScreenCategories}">

    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <WrapPanel Orientation="Horizontal" />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>

    <ItemsControl.ItemTemplate>

        <DataTemplate>

            <!-- This is the clickable style which is applied on all items -->
            <StackPanel Orientation="Horizontal">
                <Button Content="{Binding Title}"
                        Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type ItemsControl}}, 
                                                        Path=DataContext.SelectBreadcrumbCategory}"
                        CommandParameter="{Binding}"
                        VerticalAlignment="Center"
                        HorizontalAlignment="Center"
                        Padding="0 7">
                    <Button.Template>
                        <ControlTemplate TargetType="{x:Type Button}">
                            <TextBlock Foreground="{DynamicResource PrimaryHueMidBrush}"
                                       HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
                                       VerticalAlignment="{TemplateBinding VerticalAlignment}">
                                <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
                                                  VerticalAlignment="{TemplateBinding VerticalAlignment}"
                                                  Margin="{TemplateBinding Margin}" />
                            </TextBlock>
                        </ControlTemplate>
                    </Button.Template>
                </Button>
                <TextBlock Text=" >> "
                           HorizontalAlignment="Center"
                           VerticalAlignment="Center" />
            </StackPanel>

        </DataTemplate>
    </ItemsControl.ItemTemplate>

</ItemsControl>

Проблема с моим кодом заключается в том, что каждая категория кликабельна, и за ней следует символ «>>».

Вопрос, Как мне изменить стиль последнего элемента?

Вот это

1 Ответ

0 голосов
/ 06 мая 2018

Другим способом достижения этого было бы не изменение стиля, а скрытие элемента >> для последнего элемента путем привязки к конвертеру видимости. А также отключить последнюю кнопку - опять же, над привязкой. Таким образом, ваши виртуальные элементы (элементы ItemsSource) предоставляют свойство, подобное IsClickable, и оно установлено на true для всех элементов, кроме последнего.

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