我知道将 WPF 特定连接到表示模型是一种反模式。但在这种情况下,我无法避免它(我使用 SLIM DX 进行操纵杆输入,它需要手柄)。
那么有没有办法从演示模型中获取连接到模型的窗口句柄?
谢谢
我知道将 WPF 特定连接到表示模型是一种反模式。但在这种情况下,我无法避免它(我使用 SLIM DX 进行操纵杆输入,它需要手柄)。
那么有没有办法从演示模型中获取连接到模型的窗口句柄?
谢谢
如果我理解,如果您的视图模型是从 Screen 继承的,您可以调用 GetView,将其转换为您的视图类型,然后访问视图上的控件。
var myView = GetView() as OrderView;
myView.SlimDX ...
如果您不想从 VM 中引用您的视图,则可以选择在协程中执行您需要的操作。
“这是一个实现起来相当简单的接口。只需在“Execute”方法中编写代码,并确保在完成后引发“Completed”事件,无论是同步任务还是异步任务。因为协程发生在Action, 我们为您提供了一个 ActionExecutionContext 用于构建与 UI 相关的 IResult 实现。这允许 ViewModel 以声明方式声明其控制视图的意图,而无需对视图的任何引用或基于交互的单元测试的需要。这里是ActionResultContext 的样子:"
public class ActionExecutionContext
{
public ActionMessage Message;
public FrameworkElement Source;
public object EventArgs;
public object Target;
public DependencyObject View;
public MethodInfo Method;
public Func<bool> CanExecute;
public object this[string key];
}
您有上述两种选择,但还要记住在 OnViewLoaded 被触发之前不会设置句柄,因此请确保在此之后阅读句柄。