如何使用WCF返回的Dictionary <string,string =“”>?</string,>

时间:2011-04-19 10:31:15

标签: wcf windows-phone-7 silverlight-4.0

我写了一个服务

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

我编写了一个简单的windows mobile 7客户端,它需要使用wcf服务返回的数据。

作为一名初学者,我无法理解如何做到这一点。我尝试过使用像string,int或bool这样的简单数据。

如何使用字典或自定义对象等复杂类型?

2 个答案:

答案 0 :(得分: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,那么您可能希望在ViewModel中分解模型对象的属性并专门绑定到该属性。

答案 1 :(得分:0)

ListBox DataTemplate中,您可以将KeyValue语句绑定到Dictionary

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