DataTrigger не работает на основе свойства - PullRequest
0 голосов
/ 03 июля 2019

У меня есть простое окно с некоторыми кнопками и отображением содержимого выше. Теперь, основываясь на количестве страниц, на которые я могу перейти (PageViewModels.Count), я хочу установить стиль кнопок:

<DockPanel Background="White">
        <Border DockPanel.Dock="Bottom">
            <ItemsControl ItemsSource="{Binding PageViewModels}">
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <UniformGrid Columns="{Binding PageViewModels.Count}" Margin="0,19"/>
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Button x:Name="NavigationButton"
                                Content="{Binding Name}"
                                Command="{Binding DataContext.ChangePageCommand, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"
                                CommandParameter="{Binding }"                                    
                                />
                        <DataTemplate.Triggers>
                            <DataTrigger Binding="{Binding PageViewModels.Count}" Value="2">
                                <Setter Property="Style" TargetName="NavigationButton" Value="{StaticResource RoundCornerButtonPinkFilledSmall}"/>
                            </DataTrigger>
                            <DataTrigger Binding="{Binding PageViewModels.Count}" Value="{StaticResource GridColumnsBig}">
                                <Setter Property="Style" TargetName="NavigationButton" Value="{StaticResource RoundCornerButtonPinkFilledBig}"/>
                            </DataTrigger>
                        </DataTemplate.Triggers>
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
        </Border>
        <ContentControl Content="{Binding CurrentPageViewModel}" HorizontalAlignment="Stretch" VerticalAlignment="Top"/>
    </DockPanel>

Приведенный выше код корректно устанавливает количество столбцов UniformGrid, но свойство style вообще не устанавливается (если я добавлю Style="{StaticResource RoundCornerButtonPinkFilledBig}" в тег button, то это сработает, поэтому стиль, похоже, будет в порядке). Я пытался выставить значение из StaticResource или просто из числа.

Что я здесь не так делаю?

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