C# 在DataTemplate中为选定样式,触发器不适用
请查找下面的代码。我使用了itemscontrol和数据模板。 在数据模板中,我有我需要的网格和边框。 我已经使用datatemplate.Triggers编写了datatemplate的样式。 样式应用于鼠标悬停,但样式不应用于Isselected。 如何实现isselected风格???C# 在DataTemplate中为选定样式,触发器不适用,c#,wpf,C#,Wpf,请查找下面的代码。我使用了itemscontrol和数据模板。 在数据模板中,我有我需要的网格和边框。 我已经使用datatemplate.Triggers编写了datatemplate的样式。 样式应用于鼠标悬停,但样式不应用于Isselected。 如何实现isselected风格??? Xaml: 一个项目控件不跟踪SelectedItem。您可以使用ListBox <ListBox HorizontalAlignment="Center" Name="lvDat
Xaml:
一个
项目控件不跟踪SelectedItem。您可以使用ListBox
<ListBox HorizontalAlignment="Center"
Name="lvDataBinding">
<ListBox.Resources>
<!-- Removes default blue background for selected item -->
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="Transparent" />
</ListBox.Resources>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="10,0,5,0"
Width="500">
<Grid.RowDefinitions>
<RowDefinition Height="120*" />
<RowDefinition Height="5" />
<RowDefinition Height="120*" />
<RowDefinition Height="5" />
<RowDefinition Height="120*" />
<RowDefinition Height="5" />
<RowDefinition Height="120*" />
</Grid.RowDefinitions>
<Border x:Name="FirstSelectionBorder"
BorderBrush="#FF0087AA">
<Border x:Name="FirstNormalBorder"
BorderBrush="#FF555555"
BorderThickness="1">
<Grid x:Name="FirstGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10" />
<ColumnDefinition Width="300*" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="23" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="1">
<Grid.RowDefinitions>
<RowDefinition Height="10" />
<RowDefinition Height="20" />
<RowDefinition Height="10" />
<RowDefinition Height="15" />
<RowDefinition Height="5" />
<RowDefinition Height="15" />
<RowDefinition Height="5" />
<RowDefinition Height="15" />
<RowDefinition Height="5" />
<RowDefinition Height="15" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="100" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="3"
Text="Code"
Foreground="#FF555555"
FontSize="10" />
<Label Grid.Row="3"
Grid.Column="1"
Content=":"
Foreground="#FF555555"
FontSize="10" />
<TextBlock Grid.Row="3"
Grid.Column="2"
Text="{Binding Name}"
Foreground="#FF555555"
FontSize="10" />
<TextBlock Grid.Row="5"
Text="Serial Number"
Foreground="#FF555555"
FontSize="10" />
<Label Grid.Row="5"
Grid.Column="1"
Content=":"
Foreground="#FF555555"
FontSize="10" />
<TextBlock Grid.Row="5"
Grid.Column="2"
Text="{Binding Age}"
Foreground="#FF555555"
FontSize="10" />
<TextBlock Grid.Row="7"
Text="Age"
Foreground="#FF555555"
FontSize="10" />
<Label Grid.Row="7"
Grid.Column="1"
Content=":"
Foreground="#FF555555"
FontSize="10" />
<TextBlock Grid.Row="7"
Grid.Column="2"
Text="{Binding Mail}"
Foreground="#FF555555"
FontSize="10" />
</Grid>
<Button x:Name="OKButton"
Grid.Column="3"
Content="OK"
VerticalAlignment="Bottom"
Margin="0,0,0,10">
</Button>
<Button x:Name="Cancelbutton"
Grid.Column="5"
Content="Cancel"
VerticalAlignment="Bottom"
Margin="0,0,0,10">
</Button>
<Button x:Name="FirstDeleteButton"
Grid.Column="6"
VerticalAlignment="top"
Margin="3,5,2,0" />
</Grid>
</Border>
</Border>
</Grid>
<DataTemplate.Triggers>
<Trigger Property="IsMouseOver"
Value="True">
<Setter TargetName="FirstNormalBorder"
Property="Background"
Value="Green" />
</Trigger>
<DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={
RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBoxItem }}}"
Value="True">
<Setter TargetName="FirstNormalBorder" Property="Background"
Value="Red" />
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>