让这个工作变得有点困难 - 说实话,我觉得我可能不会用正确的方法做到这一点。
在我的视图中,我有一个按钮和两个列表框。
我想要的是点击按钮,让两个列表框以异步方式填充两个单独的字符串列表。
在我的ViewModel中,我有两个ObservableCollection属性,这些属性也是ListBox.ItemsSource属性的绑定。一切都好。
现在,我有一个AsyncDelegateCommand的实例(在这篇文章中概述 - http://www.amazedsaint.com/2010/10/asynchronous-delegate-command-for-your.html#),我将数据绑定到按钮的Command属性。
在DoSomething()方法中,我刚刚制作了一个快速示例,它构建了一个随机字符串列表,其间有几个睡眠模拟一些经过的时间。
如何返回此集合以在ViewModel中使用?然后更进一步,如何为多个ListBox返回此集合的多个实例?
我希望这是有道理的!
克里斯答案 0 :(得分:1)
使用您引用的AsyncDelegateCommand
,您将订阅Command的Completed
事件,并将您的集合的结果从事件参数Result
添加到您的ObservableCollection。
这将自动发生在正确的同步上下文中(因为该命令使用BackgroundWorker来运行),这将允许您的UI正确更新。