2010-06-30 98 views
0

我的应用程序中有一些带有一些按钮和选项卡和几个模块的外壳。每个模块都有一个包含datagrids,stackpanels,文本框等元素的视图。它们都有一个name属性。现在当我在shell上触发一个事件时(比如点击一个按钮),我希望能够使用这些元素(例如清除用户在提供的文本框中写入的所有信息)。问题是,shell没有看到这些元素,也无法识别它们。有没有办法访问它们?从外壳访问视图元素的WPF棱镜

感谢您的任何建议。

回答

1

我建议你采取类似于Stocktrader参考实现与CompositeCommands一样的方法。基本上,CompositeCommand是ICommand的一个实现,它包含其他ICommand的集合。在RI中,CompositeCommands作为静态属性公开在集中可用的类上。

就你而言,你可以有一个复合ClearCommand。 shell的视图模型会将这个视图暴露给shell视图,以便您可以将Clear按钮连接到它。然后

用于各种模块的的ViewModels会钩入此ClearCommand:

GlobalCommands.ClearCommand.RegisterCommand(new DelegateCommand(x => ClearAllFields()));