1

我有一个 IEnumerable,它在 pagebehind 中从 JSON 获取值:

   IEnumerable jsonData = default(IEnumerable);
   jsonData = GetJsonValues(URL);

现在我有一个集合,其中包含:

Title = "Some Title" and
Thumbnail = "URI as String"

现在我有我的 XAML 包含列表框:

 <ListBox Width="480" Height="280" x:Name="listBoxJsonData" />

如何将 jsonData 与 listBoxJsonData 绑定。

我不想用 listBoxJsonData.ItemsSource = jsonData;

4

1 回答 1

0

创建它的属性并使用 MVVM 模式使用 DataContext 进行绑定。

这种方式(未测试)在一个新类中说ViewModel.cs

private IEnumerable jsonData;

public IEnumerable GetJSonData
{
    get
    {
        if (jsonData == null)
        {
            jsonData = GetJsonValues("http://www.viki.com/api/v2/channels.json");
        }
        return jsonData;
    }
}

在 XAML 中

<ListBox Width="480" Height="280" x:Name="listBoxJsonData" 
         ItemSource="{Binding 
                      ElementName=Name_of_Window_where_this_listbox_is, 
                      Path=GetJSonData}" />

并在窗口构造函数中

this.DataContext = new ViewModel();
于 2012-08-29T08:13:58.477 回答