WPF Prism InteractionRequestTrigger:在显示时重新创建 View 和 ViewModel
WPF Prism InteractionRequestTrigger: Re-create View and ViewModel upon show
使用 InteractionRequestTrigger 显示自定义弹出视图时,每次显示时都会使用相同的 View 和 ViewModel 实例。我怎样才能recreate/reset 得到View/ViewModel,所以View 的状态是"as default"。问题是我在弹出窗口中使用了 TabControl,在关闭并重新打开弹出窗口后,最后选择的选项卡仍然处于选中状态。
有什么想法吗?
您必须创建自己的 PopupWindowAction。为 WindowContent 类型添加一个 属性,并在每次显示弹出窗口时使用它来创建新实例。
此方法不需要您创建一组新的螺母和螺栓。
- 在您的视图模型上实施
IInteractionRequestAware
。
- 在视图模型上创建一个整数属性来存储所选选项卡的索引
- 将
TabControl.SelectedIndex
绑定到新的属性
- 在执行
IInteractionRequestAware.Notification
setter 时,将所选索引 属性 重置为 0。
使用 InteractionRequestTrigger 显示自定义弹出视图时,每次显示时都会使用相同的 View 和 ViewModel 实例。我怎样才能recreate/reset 得到View/ViewModel,所以View 的状态是"as default"。问题是我在弹出窗口中使用了 TabControl,在关闭并重新打开弹出窗口后,最后选择的选项卡仍然处于选中状态。
有什么想法吗?
您必须创建自己的 PopupWindowAction。为 WindowContent 类型添加一个 属性,并在每次显示弹出窗口时使用它来创建新实例。
此方法不需要您创建一组新的螺母和螺栓。
- 在您的视图模型上实施
IInteractionRequestAware
。 - 在视图模型上创建一个整数属性来存储所选选项卡的索引
- 将
TabControl.SelectedIndex
绑定到新的属性 - 在执行
IInteractionRequestAware.Notification
setter 时,将所选索引 属性 重置为 0。