是否有可能在。net标准项目中保留视图模型?
我想为两个不同的应用程序提供一个通用的视图模型:一个用WPF编写,另一个用Blazor编写。当我想在一个单独的线程中调用我的iccommand的事件CanExecuteChanged?.Invoke(this, EventArgs.Empty);
时,出现了一个错误:"System。InvalidOperationException:调用线程不能访问这个对象,因为它被另一个线程拥有。我在。net标准中没有看到对Dispatcher的支持,也没有看到任何替代方案。这样的视图模型可以在不同的平台之间共享吗?Windows, Mac和Linux) ?
好主意。假设是SPA,我将尝试实现这一点的方法是用依赖注入注册一个类,它将代替iccommand。示例代码来自一个类,它已经从我在网上找到的一个小建议膨胀到很多功能。
我刚刚剪出了几段代码,如果你想尝试这种方式,你需要更多的信息,让我知道我会给一个完整的代码答案。
按钮上的@onclick方法可以调用在注入类中引发事件的方法。订阅类可以在同一个组件上,也可以在其他任何地方。
另外,如果你的WPF不是那种开发人员炫耀他们如何理解WPF的地方,那么你应该能够编写一个脚本来实现这种转换的自动化。
顺便说一下,我确实看到了Blazor服务器端与WPF的相似之处。对我来说,这就好像WPF得到了一个期待已久的更新,它几乎在每个领域都得到了改进。我也像对待WPF一样对待它,但我不会尝试直接转换,因为它已经得到了很大的改进。 public void ShowNotification(NotificationMessage notificationMessage)
{
Message = notificationMessage;
NotifyMessageArrived();
}
private void NotifyMessageArrived()
{
OnRaiseMessageArrivedNotification?.Invoke();
}
public event Action OnRaiseMessageArrivedNotification;