1

ページビハインドでJSONから値を取得するIEnumerableがあります。

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

今、私は以下を含むコレクションを持っています:

Title ="SomeTitle"および
Thumbnail="URI as String"

これで、XAMLContainingListBoxができました。

 <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 に答える