2011-07-14 130 views
0

我有一個WPF MVVM棱鏡應用程序來上傳文件。 我列出的從一個目錄提交到一個數據網格和一個上傳按鈕到 從數據網格上傳選定的文件。WPF數據綁定異步

爲此,我將Grid'selecteditems'傳遞給按鈕的命令參數。 我以同步的方式成功實現了這個功能,現在想以異步方式擴展 這個功能。 使用委託

這是我的異步函數調用

asyncUpload.BeginInvoke(selectedFiles,out tt, new AsyncCallback(test),null); 

這裏所選的文件是通過上傳按鈕的命令參數傳遞的DataGrid中的「selecteditems」。 問題是,在執行上傳的第一個線程時,我從datagrid中選擇另一組文件來上傳 ,它將更改第一個線程的選定文件。

我該如何解決這個問題。

在此先感謝...

回答

0

實際「SelectedItems名單千萬不要錯過到您的BeginInvoke()方法。

而是傳遞'SelectedItems'列表的副本。

Array[] array = new Array[dataGrid.SelectedItems.Count]; 

dataGrid.SelectedItems.CopyTo(array,0); 

asyncUpload.BeginInvoke(array.ToList(), out tt, new AsyncCallback(test), null); 
+0

感謝,我實現這個...使用asyncbegin.Invoke之前的foreach(在selectedFiles對象SS) {} ... – S007