2011-04-19 78 views
0

我已經寫了服務如何使用WCF返回的Dictionary <string,string>?

[OperationContract] 
Dictionary<string, string> GetItemNames(UInt16 mobileNO); 

我已經寫了一個簡單的Windows Mobile 7客戶端,其需要消耗由WCF服務返回的數據。

作爲一名初學者,我無法理解如何做到這一點。我曾嘗試使用簡單的數據,如字符串,int或布爾。

如何使用字典或自定義對象等複雜類型?

回答

0

綁定到對象與綁定到基本類型沒有區別。由於字典是IEnumerable,因此您可以將其綁定到任何Items Control的ItemsSource屬性,並設置DisplayMemberPath =「Value」。

public MainPage() 
    { 
     InitializeComponent(); 

     Dictionary<int, string> dic = new Dictionary<int, string>(); 

     for (int i = 1; i < 11; i++) 
     { 
      dic.Add(i, string.Format("Item {0}", i)); 
     } 

     lstBox.ItemsSource = dic; 
    } 

<ListBox x:Name="lstBox" 
       DisplayMemberPath="Value" 
       Margin="5" /> 

對於對象下面結合是有效的:

<TextBlock Text="{Binding Object.Property}" /> 

如果您使用的MVVM那麼你可能想打破在視圖模型模型對象的屬性和特異性結合這一點。

+0

嘿感謝大衛,我的理解和解決方案heloed我! – Bindu 2011-04-21 04:56:34

0

ListBoxDataTemplate你可以用KeyValue報表綁定到Dictionary

<StackPanel Orientation="Horizontal" Margin="12,0"> 
     <TextBlock Text="{Binding Key}" /> 
     <TextBlock Text=": " /> 
     <TextBlock Text="{Binding Value}" /> 
</StackPanel> 
相關問題