2013-10-29 128 views
0

我正在嘗試將數據綁定到組合框,但無法綁定它。如何將dataSource綁定到組合框?

CBFolders.ItemsSource = client.GetNewsLetterFoldersAsync("token", 12, 3427).AsDataView();

在這段代碼中,我使用的Web服務,方法GetNewsLetterFolders返回數據表。

請幫我一下,我可以如何綁定?

+2

什麼是'GetNewsLetterFoldersAsync'的返回類型? –

+0

它重新排列Datatable – naCheex

+0

如果它是一個異步調用,它可能會返回DataTable嗎? – McGarnagle

回答

2

返回類型的Web服務方法應該是模型類。如果它正在返回folderId & Description並且這兩個屬性都應該是FolderData類的成員。因此FolderData essentialy成爲表格。

我認爲服務方法GetNewsLetterFoldersAsync返回列表。所以COMBOX框應該像這樣

CBFolders.ItemsSource = await client.GetNewsLetterFoldersAsync("token", 12, 3427); 
<ComboBox x:Name="CBFolders" SelectedValuePath="folderId" DisplayMemberPath="Description" /> 

SelectedValuePath被綁定應與被需要,而在ComboBox選擇更改該屬性可綁定。 DisplayMemberPath應該綁定到需要在ComboBox中顯示的屬性。

CBFolders.SelectedItem將返回選定folderId

+0

返回類型應該是列表還是模型類? – naCheex

+0

模型類列表,即'列表' – Xyroid

+0

我認爲calss在這種情況下是不可序列化的,所以它不工作:( 任何替代? – naCheex

0

當您將它綁定到ItemsSOurce屬性時,您需要將數據錶轉換爲List。 CBFolders.ItemsSource = client.GetNewsLetterFoldersAsync(「token」,12,3427).GetList()。希望這可以幫助。

+0

我在使用數據表,因爲我們需要多個不同類型的列數據,我們的數據表的第一列是folderId,第二列是Description。 我可以用list嗎?單個還是2D? – naCheex