WPF共享控件

时间:2019-02-22 04:43:55
【文件属性】:

文件名称:WPF共享控件

文件大小:329KB

文件格式:ZIP

更新时间:2019-02-22 04:43:55

WPF Style MVVM Command Trigger

原创: 本示例以一个共享控件为例,对样式资源加以说明,方便对样式有个更深层次的了解,主要有以下特点: 1.使用简单MVVM模式,使用命令代替UI事件。 2.使用到各种样式。 3.将控件共享化。 4.使用命令触发器。 public MainWindow() { InitializeComponent(); Action>, string> bindData = (xamDataGrid, selectedRowsCommand, rowsPropertyName) => { BindingOperations.SetBinding(xamDataGrid, DataGrid.ItemsSourceProperty, new Binding { Source = ViewModel, Path = new PropertyPath(rowsPropertyName), Mode = BindingMode.OneWay }); // TODO : 全选命令未绑定到vm var contextMenu = (MenuItem)xamDataGrid.ContextMenu.Items[0]; contextMenu.Command = ApplicationCommands.SelectAll; contextMenu.Header = "全选"; var commandTrigger = (EventCommandTrigger)CommandSource.GetTriggers(xamDataGrid); BindingOperations.SetBinding(commandTrigger, EventCommandTrigger.CommandParameterProperty, new Binding { Source = xamDataGrid.SelectedItems, }); commandTrigger.Command = selectedRowsCommand; commandTrigger.RoutedEvent = DataGrid.SelectionChangedEvent; commandTrigger.UpdateCommandParameter = true; }; const string SHARED_DATAGRID = "xgShared"; var viewModel = (MainViewModel)ViewModel; var xdgSystem = (DataGrid)Resources[SHARED_DATAGRID]; bindData(xdgSystem, viewModel.SelectedSystemRowsCommand, "SystemRows"); placeSystem.Content = xdgSystem; var xdgImport = (DataGrid)Resources[SHARED_DATAGRID]; bindData(xdgImport, viewModel.SelectedImportRowsCommand, "ImportRows"); placeImport.Content = xdgImport; }


【文件预览】:
SharedStyle
----SharedStyle.sln(875B)
----SharedStyle.suo(83KB)
----ReadMe.txt(194B)
----SharedStyle()
--------Triggers()
--------bin()
--------obj()
--------Resources()
--------MainViewModel.cs(6KB)
--------MainWindow.xaml(6KB)
--------Properties()
--------DataRow.cs(589B)
--------MainWindow.xaml.cs(3KB)
--------App.xaml(599B)
--------App.xaml.cs(186B)
--------SharedStyle.csproj(6KB)
--------Base()

网友评论