У меня есть простое окно с некоторыми кнопками и отображением содержимого выше. Теперь, основываясь на количестве страниц, на которые я могу перейти (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 или просто из числа.
Что я здесь не так делаю?