太多的命令附加到视图模型使WPF应用程序变慢

时间:2013-03-19 04:26:51

标签: wpf performance mvvm datagrid

我有一个显示在DataGrid内的视图模型。视图模型有11个ICommand

因此,如果我们要加载的DataGrid具有超过100个元素。 总共创建了11 * 100个命令。

加载整个DataGrid大约需要1分钟。

3 个答案:

答案 0 :(得分:4)

通过实例化每个项目的11个命令,您不会将命令与项目关联。无论你有多少项,你都应该有一个命令(或者你的情况下是11)。该命令使用command parameter知道要操作的项目。

将11个命令放在datagrid或window viewmodel中,并从项目视图模型中删除它们。将每个命令的CommandParame绑定到您将调用命令的项目,例如Datagrid中的选定项目。

答案 1 :(得分:1)

WPF动态上下文菜单解决了我的问题.. 您可以在datagrid行上使用ContextMenu.ContextMenuOpening事件来创建命令,同时右键单击Row。See this link for more information

以上链接用于列表..您也可以以相同的方式使用DataGrid

答案 2 :(得分:0)

如果从调试器运行它通常需要很长时间。试试exe。