Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net WPF datagrid剪切列(MVVM)_.net_Wpf_Datagrid - Fatal编程技术网

.net WPF datagrid剪切列(MVVM)

.net WPF datagrid剪切列(MVVM),.net,wpf,datagrid,.net,Wpf,Datagrid,在WPF datagrid中,是否允许用户剪切或删除列 如果是,是否有任何内置的支持? 如果没有,我怎么做?示例说明将非常好。您需要两项功能: 用户可以选择/取消选择他们希望在网格中看到的列 根据该信息进行操作并实际隐藏/显示受影响的列 尽管您使用的是MVVM,但这相当容易做到,因为它可以在视图中处理。没错,伙计们,虚拟机不需要知道这方面的任何事情——这纯粹是与视图相关的事情,与虚拟机所持有的数据无关 我不会给出示例代码,您可以自己解决。在列中单击鼠标右键时,UI可以像上下文菜单一样简单,并带有

在WPF datagrid中,是否允许用户剪切或删除列

如果是,是否有任何内置的支持?
如果没有,我怎么做?示例说明将非常好。

您需要两项功能:

用户可以选择/取消选择他们希望在网格中看到的列 根据该信息进行操作并实际隐藏/显示受影响的列 尽管您使用的是MVVM,但这相当容易做到,因为它可以在视图中处理。没错,伙计们,虚拟机不需要知道这方面的任何事情——这纯粹是与视图相关的事情,与虚拟机所持有的数据无关

我不会给出示例代码,您可以自己解决。在列中单击鼠标右键时,UI可以像上下文菜单一样简单,并带有隐藏此列的选项。当然,这是一个不可逆转的单向过程,但也许这就是你想要的,列会一直隐藏,直到用户下次运行应用程序

另一个选项是弹出一个模式子窗口,其中有足够的信息供用户选择要显示或隐藏的列。这同样可以从上下文菜单项或其他一些UI操作触发。此时,您可以枚举网格列,创建数据对象列表,其中包含每列的信息,例如名称或列标题及其可见性,创建相应控件的实例以显示此信息这是视图,将数据对象指定给它ViewModel,然后将视图插入模式子窗口。关闭窗口后,您可以重新获取该数据,并根据用户的选择在其中重复显示或隐藏列。请记住,这仍然可能发生在原始视图的代码隐藏中。如果您使用的是像Prism这样的区域或UI管理器,那么我提到的子窗口可以通过它来管理