我使用Silverlight 4和MVVM灯。 假设我有一个带有两个不同数据网格的MainView。如果我从任何数据网格中选择一行(SelectedItem),我可以打开一个灯箱或另一个MainView2。关闭灯箱或从MainView2导航回MainView时,我希望MainView将焦点放在SelectedItem及其网格上。
我能想到的唯一方法是在视图或视图模型之间发送消息以设置焦点。
还有其他想法吗?
提前致谢, Kruvi
答案 0 :(得分:0)
我没有一个现成的例子来告诉你。可能是您可以使用消息来发送消息说儿童视图已关闭。并且在父母中将焦点设置为您想要的任何控件。或者,您也可以从子控件触发一个可以由父级订阅的事件。
我个人喜欢消息传递方法,因为它使解决方案解耦。有一个事件意味着父项会与孩子有点耦合,如果它非常大,可能会导致应用程序的可伸缩性和可维护性出现问题。
希望这有帮助。