xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:WpfToolkit="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit"
1. WpfToolkit:DataGrid在TableView.xaml中定义如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 |
<WpfToolkit:DataGrid x:Name= "PlotViewDataGrid" ItemsSource= "{Binding DataGridSource, Mode=TwoWay}"
IsReadOnly= "True"
SelectedItem= "{Binding DataGridSelected}" AutoGenerateColumns= "True"
AutoGeneratedColumns= "PlotViewDataGrid_AutoGeneratedColumns" Width= "685"
RowHeight= "25"
Margin= "0"
CanUserResizeRows= "True"
SelectionMode= "Single" SelectedIndex= "{Binding DataGridSelectedIndex, Mode=TwoWay}"
Grid.Row= "0" > <i:Interaction.Triggers> <i:EventTrigger EventName= "SelectionChanged" > <i:InvokeCommandAction Command= "{Binding GetSelectCommand}" CommandParameter= "{Binding SelectedItem,ElementName=PlotViewDataGrid}"
/> </i:EventTrigger> <i:EventTrigger EventName= "MouseDoubleClick" > <i:InvokeCommandAction Command= "{Binding DataGridDoubleClickCommand}" CommandParameter= "{Binding SelectedItem,ElementName=PlotViewDataGrid}"
/> </i:EventTrigger> </i:Interaction.Triggers> <WpfToolkit:DataGrid.RowStyle> <Style TargetType= "{x:Type WpfToolkit:DataGridRow}" > <Setter Property= "Background"
Value= "Red"
/> </Style> </WpfToolkit:DataGrid.RowStyle> </WpfToolkit:DataGrid> |
1.在TableView.xmal.cs文件中PlotViewDataGrid_AutoGeneratedColumns函数可以改变列宽
private void PlotViewDataGrid_AutoGeneratedColumns(object sender, EventArgs e) {
double dgwidth = this.PlotViewDataGrid.Width;
int columnWidth = this.PlotViewDataGrid.Columns.Count;
this.PlotViewDataGrid.HorizontalContentAlignment = (HorizontalAlignment)1;
for (int i = 0; i < this.PlotViewDataGrid.Columns.Count; i++)
{
this.PlotViewDataGrid.Columns[i].Width = new Microsoft.Windows.Controls.DataGridLength(dgwidth / columnWidth);
}
}
2.在TableViewModel.cs文件中
#region DataGridDoubleClickCommand RelayCommand<object> dataGridDoubleClickCommand = null; public ICommand DataGridDoubleClickCommand { get { if (dataGridDoubleClickCommand == null) { dataGridDoubleClickCommand = new RelayCommand<object>((p) => OnDataGridDoubleClickCommand(p), (p) => CanDataGridDoubleClickCommand(p)); } return dataGridDoubleClickCommand; } } private bool CanDataGridDoubleClickCommand(object p) { return true; } private void OnDataGridDoubleClickCommand(object p) { DataGridDoubleClickHandle(p); } #endregion
3.DataGrid风格自定义
<WpfToolkit:DataGrid.RowStyle>
<Style TargetType="{x:Type
WpfToolkit:DataGridRow}">
<Setter Property="Background" Value="Red"
/>
</Style>
</WpfToolkit:DataGrid.RowStyle>
4.CanUserResizeRows="True"允许用户调整行高
其他参考内容如下:
(1)自动生成列
2)取消自动生成列,手动绑定到相应字段
最后一列设置Width ="*"是为了取消空白列。
(3)后台代码
(4)删除选中的多行数据
原文:http://www.cnblogs.com/zzlp/p/3535774.html