Prism/mvvm:如何将视图焦点绑定到操作?

Prism/mvvm:如何将视图焦点绑定到操作?,mvvm,focus,prism,Mvvm,Focus,Prism,我有一个prism/mvvm视图,如果视图获得或失去焦点,我想通知ViewModel 我想我需要将视图的GotFocus绑定到ViewModel中的一个动作,但我不知道如何开始 当然这是一个已经在某处解决的标准问题,只是我没有找到解决方案?你可以使用行为。此行为在作为Expression Blend一部分的assembly System.Windows.Interactive中定义。通过此行为,您可以绑定到视图的GotFocus事件,并在viewModel中执行命令 对于LostFocus,可以

我有一个prism/mvvm视图,如果视图获得或失去焦点,我想通知ViewModel

我想我需要将视图的GotFocus绑定到ViewModel中的一个动作,但我不知道如何开始

当然这是一个已经在某处解决的标准问题,只是我没有找到解决方案?

你可以使用行为。此行为在作为Expression Blend一部分的assembly System.Windows.Interactive中定义。通过此行为,您可以绑定到视图的GotFocus事件,并在viewModel中执行命令

对于LostFocus,可以使用相同的方法。这是一个如何使用InvokeCommandAction的示例

关于用户控制的焦点有一点。您应该知道,当控件(如TextBox)获取焦点时,会引发视图的GotFocus事件。用户控件本身无法聚焦

[更新] 当IsTabStop设置为true时,将引发UserControl的GotFocus

你不能使用prism框架的接口吗。在区域中导航视图时,将设置IsActive属性

该界面可以在视图上实现,并且在区域中激活视图时,将通知ViewModel(要求将ViewModel实例设置为视图的DataContext)。

您可以使用行为。此行为在作为Expression Blend一部分的assembly System.Windows.Interactive中定义。通过此行为,您可以绑定到视图的GotFocus事件,并在viewModel中执行命令

对于LostFocus,可以使用相同的方法。这是一个如何使用InvokeCommandAction的示例

关于用户控制的焦点有一点。您应该知道,当控件(如TextBox)获取焦点时,会引发视图的GotFocus事件。用户控件本身无法聚焦

[更新] 当IsTabStop设置为true时,将引发UserControl的GotFocus

你不能使用prism框架的接口吗。在区域中导航视图时,将设置IsActive属性


该界面可以在视图上实现,并且当视图在区域中被激活时,ViewModel(需要将ViewModel实例设置为视图的DataContext)将得到通知。

IActiveAware对焦点不做任何事情。IActiveAware用于发出信号,表明某个视图是否在(比如)选项卡控件中处于活动状态,或者该视图是当前显示在具有单一视图的区域中的视图,如ContentControl@Anderson艾姆斯:当然你是对的,我想他指的是当视图激活时,因为他使用的是棱镜。如果他的意思是事件获得/失去焦点,那么IActiveAware不能做任何事情。IActiveAware不能为焦点做任何事情。IActiveAware用于发出信号,表明某个视图是否在(比如)选项卡控件中处于活动状态,或者该视图是当前显示在具有单一视图的区域中的视图,如ContentControl@Anderson艾姆斯:当然你是对的,我想他指的是当视图激活时,因为他使用的是棱镜。如果他的意思是事件获得/失去焦点,那么IActiveAware什么也做不了。当视图引发事件GotFocus/LostFocus时,是否要对viewmodel执行操作?@Jehof,是的。我想知道是否有MVVM方法可以实现这一点。当视图引发事件GotFocus/LostFocus时,是否要对viewmodel执行操作?@Jehof,是的。我想知道是否有一种MVVM方法可以实现这一点。