0

Visual Studio Express 2012 RC でアプリを作成しようとしています。JSON データをダウンロードして逆シリアル化しました。しかし、データをリスト ボックスにバインドした後、実際のコンテンツを表示するのではなく、project-name.page-name+Datumテキスト ブロックで表示しています。

XAML コードの一部を次に示します。

<ListBox x:Name="listbox1" HorizontalAlignment="Left" Height="687" Margin="10,71,0,0" VerticalAlignment="Top" Width="1346" ItemsSource="{Binding data}">
    <TextBlock x:Name="textblock1" TextWrapping="Wrap" Height="50" Width="443" Text="{Binding name}" />
</ListBox>

これは xaml.cs コードの一部です

public class RootObject
{
    public List<Datum> data { get; set; }

}
public class Datum
{
    public string name { get; set; }
}

これは、JSONデータを逆シリアル化するために使用しているコードです

stream loading = await load.GetStreamAsync(....);
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(RootObject));
RootObject loaded = (RootObject) ser.ReadObject(loading);
listbox1.DataContext = loaded;

コードの何が問題なのか誰か教えてもらえますか? 私は Windows phone アプリで同じものを使用していますが、webclient を使用したことを除いて、正常に動作しています。

助けてください。

4

1 に答える 1

0

ListBox のItemsコレクションに UIElement を追加しました。必要なものを表示するアイテムを取得する適切な方法は、ItemTemplate を適用することです。インラインで実行するか、リソースを参照できます。

<ListBox ItemsSource="{Binding data}">
    <ListBox.ItemTemplate>
        <DataTemplate>
          <TextBlock Text="{Binding name}" />
        </DataTemplate>
    </ListBox.ItemTemplate
</ListBox>

テストはしていませんが、その設定で動作するはずです。これがうまくいった場合は、他の人があなたの質問から学ぶことができるように、それを回答としてマークすることを忘れないでください.

補足事項

また、重要でないプロパティのサンプル コードをスクラブすることをお勧めします。また、ハードコードされた幅/マージンの値は避けてください。アプリケーション要素が比例してサイズを変更できるようにします。

于 2012-07-09T16:27:22.817 に答える