動態生成DataGrid,包括分頁、checkbox、動態綁定數據列、動態生成按鈕並綁定事件、允許泛型數據類
最新效果圖:


效果如下:

使用只需要配置即可:
<datagridwithpages:DataGridWithPage Grid.Row="0" Name="table"></datagridwithpages:DataGridWithPage>
//設置表格內容
table.Loaded += Table_Loaded;
//設置數據源、分頁事件
//DemoViewModel需要繼承於DataGridWithPageBaseViewModel<T>,並且實現數據查詢、分頁功能
demoViewModel= new DemoViewModel(10, 1);
table.DataContext = demoViewModel;
private void Table_Loaded(object sender, RoutedEventArgs e)
{
//設置數據列
List<SetDataColumnsItem> columnsItems = new List<SetDataColumnsItem>();
columnsItems.Add(new SetDataColumnsItem() { Header = "Id", BindPath = "Id", DataGridLengthValue = 1, DataGridLengthUnitType = DataGridLengthUnitType.Star,Order=1 });
columnsItems.Add(new SetDataColumnsItem() { Header = "ItemName", BindPath = "ItemName", DataGridLengthValue = 3, DataGridLengthUnitType = DataGridLengthUnitType.Star,Order=2 });
//設置操作列
List<OperationInfo> operationInfos = new List<OperationInfo>();
operationInfos.Add(new OperationInfo() { Content = "修改", ExecuteEvent = Modify_Click,CanExecuteEvent=new ModifyVisibilityConverter(), Order = 1 });
operationInfos.Add(new OperationInfo() { Content = "刪除", ExecuteEvent = Delete_Click,CanExecuteEvent=new DeleteVisibilityConverter(), Order =2 });
table.SetDataGrid(columnsItems, true, operationInfos, true);
}
SetDataGrid方法定義如下:
/// <summary>
/// 設置表格內容
/// </summary>
/// <param name="input">數據列</param>
/// <param name="isShowOperationColumn">是否顯示操作列</param>
/// <param name="input2">操作列</param>
/// <param name="isShowCheckBox">是否顯示checkbox</param>
public void SetDataGrid(List<SetDataColumnsItem> input, bool isShowOperationColumn = false,List < OperationInfo> input2=null, bool isShowCheckBox = false)
源代碼和demo鏈接
啟動DemoWindow.xaml即可
樣式,樣式這個東西是不存在的,自己寫吧~
要素過多,不講了,感興趣自己看吧
