gpt4 book ai didi

c# - 更新 viewModel 中的属性

转载 作者:太空宇宙 更新时间:2023-11-03 13:06:00 24 4
gpt4 key购买 nike

我有一个包含 Windows 数据网格的 xaml 文件。它的 Itemsource 是关联 ViewModel 中的一个属性。

在我的 xaml ViewModel 类(即客户端)中,我使用消息传递 API 在服务器上调用方法 M。(服务器是使用 .net windows 服务实现的)。

这个方法M在内部使用了.Net的Enqueue()TPL (Task Parallel Library)来执行这个方法并将结果返回给客户端(使用messagging API) .

一旦此方法在服务器上完成,我需要以编程方式更新我的 ViewModel 中的属性。请问我该如何实现?

(问题是客户端在 UI 线程上向服务器发出请求。服务器在单独的线程上异步运行。)

提前致谢。

最佳答案

对于标量属性,您无需执行任何操作。当您调用“OnPropertyChanged”时,调用已经编码到 UI 线程。然而,不幸的是,有些类型如 ObservableCollections 不是线程安全的。所以替代方案是使用类似 this 的线程安全集合。 ,或者自己处理编码。本质上是使用 Dispatcher 向 UI 线程调用一些代码。这是一个简单的例子:

App.Current.Dispatcher.Invoke(new Action(()=>
{
//The code I want to run on the UI thread.
}));

关于c# - 更新 viewModel 中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30787580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com