我有DataGrid:
<DataGrid x:Name="dgNames">
<DataGrid.Columns>
<DataGridTemplateColumn x:Name="tcContent" >
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<TextBlock VerticalAlignment="Top" Text="Content"/>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Text}" VerticalAlignment="Center" TextTrimming="CharacterEllipsis" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
如何仅为第一行设置样式(手形光标(?
您可以使用转换器来获取行索引,然后在DataTrigger
中根据该索引设置光标:
<Window ...>
<Window.Resources>
<local:RowIndexConverter x:Key="RowIndexConverter"/>
</Window.Resources>
<Grid>
<DataGrid x:Name="dgNames" ItemsSource="{Binding DgCollection}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTemplateColumn x:Name="tcContent" >
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<TextBlock VerticalAlignment="Top" Text="Content"/>
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Text}" VerticalAlignment="Center" TextTrimming="CharacterEllipsis" >
<TextBlock.Style>
<Style TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type DataGridRow}},
Converter={StaticResource RowIndexConverter}}"
Value="0">
<Setter Property="Cursor" Value="Hand"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
RowIndexConverter
返回当前行索引:
public class RowIndexConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
return (value as DataGridRow).GetIndex();
}
public object ConvertBack(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
请注意,DgCollection
是一个简单的ObservableCollection
。