2011-12-12 42 views
1

將此工作起來有點困難 - 說實話,我覺得我可能不會用正確的方法做到這一點。從WPF MVVM應用程序中的異步命令返回數據

在我看來我有一個按鈕和兩個列表框。

我想要的是單擊按鈕,並使兩個列表框以異步方式填充兩個單獨的字符串列表。

在我的ViewModel中,我有兩個ObservableCollection屬性,這些都是ListBox.ItemsSource屬性綁定了。都好。

現在,我有一個AsyncDelegateCommand的實例(在這篇文章中概述 - http://www.amazedsaint.com/2010/10/asynchronous-delegate-command-for-your.html#),我有數據綁定到按鈕的Command屬性。

在DoSomething()方法中,我剛剛做了一個快速示例,它構造了一個隨機字符串列表,其中包含幾次睡眠以模擬一段時間。

如何返回此集合以用於ViewModel?然後再進一步,我怎樣才能爲多個ListBox返回這個集合的多個實例?

我希望這是有道理的!

克里斯

回答

1

使用AsyncDelegateCommand你參考,你會訂閱司令部Completed事件,從事件參數Result加入您的收藏的結果發送到您的ObservableCollection。

這會自動發生在正確的同步上下文中(因爲該命令使用BackgroundWorker來運行),這將允許您的UI進行適當的更新。

+0

謝謝!完全錯過了:) – lookitskris