0
請找到下面的代碼。我已經使用itemscontrol和數據模板。 內部數據模板,我有我需要的網格和邊框。 我已經使用DataTemplate.Triggers爲datatemplate編寫了樣式。 樣式應用於鼠標懸停,但樣式不適用於Isselected。 如何實現isselected style ???
的XAML:DataTemplate中的IsSelected樣式,觸發器不適用
<ItemsControl HorizontalAlignment="Center" Name="lvDataBinding">
<ItemsControl.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>
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="FirstNormalBorder" Property="Background" Value="Red"/>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
cs:
public MainWindow()
{
InitializeComponent();
List<User> items = new List<User>();
items.Add(new User() { Name = "John Doe", Age = 42, Mail = "[email protected]" });
items.Add(new User() { Name = "Jane Doe", Age = 39, Mail = "[email protected]" });
items.Add(new User() { Name = "Sammy Doe", Age = 13, Mail = "[email protected]" });
lvDataBinding.ItemsSource = items;
}
}
public class User
{
public string Name { get; set; }
public int Age { get; set; }
public string Mail { get; set; }
}