DataGrid用法
前台
<Window x:Class="MySQL.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:assembly="clr-namespace:System;assembly=mscorlib" xmlns:local="clr-namespace:MySQL" Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded"> <Window.Resources> <ObjectDataProvider x:Key="keySex" MethodName="GetValues" ObjectType="{x:Type assembly:Enum}"> <ObjectDataProvider.MethodParameters> <x:Type Type="local:Sex"></x:Type> <!--引用后台的枚举类型,为字段‘性别’提供数据源。上面引用了命名空间Demo--> </ObjectDataProvider.MethodParameters> </ObjectDataProvider> </Window.Resources> <Grid> <StackPanel> <DataGrid Name="dataGrid1" AutoGenerateColumns="False"> <DataGrid.RowHeaderStyle> <Style TargetType="DataGridRowHeader"> <Setter Property="Width" Value="15"/> <Setter Property="Background"> <Setter.Value> <LinearGradientBrush StartPoint="0,0" EndPoint="1,1"> <GradientStop Color="White" Offset="0"/> <!--这里用到了两种颜色 也可以多层 这样就可以产生一种渐变的效果或立体感--> <GradientStop Color="SkyBlue" Offset="1"/> </LinearGradientBrush> </Setter.Value> </Setter> </Style> </DataGrid.RowHeaderStyle> <DataGrid.RowStyle> <Style TargetType="DataGridRow"> <Setter Property="Background" Value="LightBlue" /> <Style.Triggers> <Trigger Property="IsMouseOver" Value="True"> <!--当鼠标经过时 改变颜色--> <Setter Property="Background" Value="SkyBlue"/> <Setter Property="Foreground" Value="White"/> </Trigger> </Style.Triggers> </Style> </DataGrid.RowStyle> <DataGrid.CellStyle> <Style TargetType="DataGridCell"> <Style.Triggers> <Trigger Property="IsSelected" Value="True"> <!--单元格被选中时 改变颜色--> <Setter Property="Background" Value="LightPink"/> </Trigger> </Style.Triggers> </Style> </DataGrid.CellStyle> <DataGrid.Columns> <DataGridTextColumn Header="ID" Binding="{Binding id, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/> <DataGridTextColumn Header="Name" Binding="{Binding name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/> <DataGridTemplateColumn Header="Sex"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <TextBlock Text="{Binding Path=sex}" /> <!--显示状态时显示 TextBlock里的值--> </DataTemplate> </DataGridTemplateColumn.CellTemplate> <DataGridTemplateColumn.CellEditingTemplate> <DataTemplate> <!--编辑状态就切换到ComboBox里进行下拉选择操作--> <ComboBox x:Name="taskCombo" ItemsSource="{Binding Source={StaticResource keySex}}" SelectedItem ="{Binding Path=sex}" IsSynchronizedWithCurrentItem="False"/> </DataTemplate> </DataGridTemplateColumn.CellEditingTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> </StackPanel> </Grid> </Window>
后台
MainWindow.xaml.cs
参考:http://blog.csdn.net/sanjiawan/article/details/6785394


浙公网安备 33010602011771号