假设我在视图中有某种列表控件,我从中选择一个名称并将其设置为视图模型中的“SelectedName”属性。当选择名称时,我想异步获取与该名称相关联的一组数据,并使用该数据设置另一个属性,然后更新绑定到该其他数据属性的视图中的另一个控件。
无法在属性中使用async/await,因此无法在“SelectedName”setter中进行请求和赋值。
在这种情况下,MVVM最佳实践是什么?
我认为,可能选择名称也会触发视图模型中的命令(RelayAsyncCommand)执行异步获取和分配工作。但是,在命令执行之前是否有任何保证“SelectedName”会被更新,以便命令需要使用它?
无法在属性中使用async/await,因此无法在“SelectedName”setter中进行请求和赋值。
在这种情况下,MVVM最佳实践是什么?
我认为,可能选择名称也会触发视图模型中的命令(RelayAsyncCommand)执行异步获取和分配工作。但是,在命令执行之前是否有任何保证“SelectedName”会被更新,以便命令需要使用它?
NotifyTask<T>.Result
;在此期间,它为null
。对于您来说,最简单的解决方案可能是创建一个单独的async
方法,等待NotifyTask<T>.Task
然后设置Clients
。 - Stephen Cleary