Windows Phoneアプリケーションからjson webserviceを使用して、取得したデータをリストボックスに表示しようとしています。 Webサービス(e.result内)からデータを取得できましたが、リストボックスにデータを取得できません。 以下は私のxamlコードです。json webserviceのデータをWindows phoneのリストボックスに表示できません。7.1アプリケーション
<Grid x:Name="ContentPanel" Grid.Row="2" Margin="12,0,12,0">
<Grid.Background>
<SolidColorBrush Color="Black" >
</SolidColorBrush>
<!--<ImageBrush ImageSource="/images/[email protected]" 5F91F5/>-->
</Grid.Background>
<ListBox x:Name="carslist" Padding="0,0,0,0" HorizontalAlignment="Center" VerticalAlignment="Top" >
<ListBox.ItemTemplate>
<DataTemplate>
<Border Margin="3" Height="50">
<StackPanel Background="Transparent" Orientation="Vertical" Width="420" Height="60">
<StackPanel Background="Transparent" Orientation="Horizontal" Width="420" Height="60">
<TextBlock Foreground="White" HorizontalAlignment="Left" TextWrapping="NoWrap" VerticalAlignment="Center" FontSize="26" Text="{Binding cartype}"/>
<TextBlock Foreground="White" HorizontalAlignment="Left" TextWrapping="NoWrap" VerticalAlignment="Center" FontSize="26" Text="{Binding carcode}"/>
</StackPanel>
</StackPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
以下は私のxaml.csコードです。
public MainPage()
{
InitializeComponent();
string key = "123";
WebClient getcars = new WebClient();
getcars.DownloadStringCompleted += new DownloadStringCompletedEventHandler(getcars_DownloadStringCompleted);
getcars.DownloadStringAsync(new Uri("http://myurl?key=" + "{" + key + "}"));
}
void getcars_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
Stream stream = new MemoryStream(Encoding.Unicode.GetBytes(e.Result));
DataContractJsonSerializer obj = new DataContractJsonSerializer(typeof(List<cars>));
List<cars> result = obj.ReadObject(stream) as List<cars>;
carslist.ItemsSource = result;
}
}
public class cars
{
public string carcode { get; set; }
public string cartitle { get; set; }
public string cartype { get; set; }
public string carid { get; set; }
}
誰かが私の問題を解決するのに役立つでしょうか...事前に感謝します。
あなたの問題を解決するかどうかわかりませんが、プロパティに結果を追加し、リストボックスのItemsSourceにこのプロパティをバインドしようとするので、うまくいきます。私はあなたのプロジェクトでMVVMを試してみることをお勧めします。 – BigL