0
ComboBox
にRESTサービスから得たデータを作成しようとしています。私のウィンドウでRESTサービスからComboBoxへデータをバインドする
私はデータを取得し、ViewModelにを設定する方法があります:
private void ComboBox_Loaded(object sender, RoutedEventArgs e)
{
String url = "http://localhost:8081/HTTP/testFrigoexim/prijem/getDodavatele";
WebClient client = new WebClient();
String response = client.DownloadString(url);
Dodavatele dodavatele;
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Dodavatele));
using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(response)))
{
dodavatele = (Dodavatele)serializer.ReadObject(stream);
}
ComboBoxDodavatele.DataContext = new ViewModel(dodavatele);
}
クラスは、RESTサービスからのデータを表しています。
namespace TestovaciAplikace.Prijem
{
[DataContract]
public class Dodavatele
{
[DataMember]
public List<Dodavatel> dodavatele { get; set; }
}
public class Dodavatel
{
public string CODE { get; set; }
}
}
と最後のクラス、ViewModel
namespace TestovaciAplikace.Prijem
{
public class ViewModel : NotifyPropertyChanged
{
public Dodavatele dodavatele { get; set; }
public ViewModel(Dodavatele dodavatele)
{
this.dodavatele = dodavatele;
}
}
}
ComboBoxへのバインドは
です。<ComboBox Name="ComboBoxDodavatele" HorizontalAlignment="Left" Margin="109,10,0,0" VerticalAlignment="Top" Width="210" Height="35"
Loaded="ComboBox_Loaded" ItemsSource="{Binding dodavatele}" DisplayMemberPath="CODE"/
プログラムを実行すると、ComboBox
は空です。私がViewModel
の代わりに単純なList<String>
を返した場合(バインディングプロパティを変更した場合)は動作しますが、JSONデータで動作することはできません。何かアドバイス?
ようになっているはずの男ああ、ありがとう!それを変更し、それが動作するように見える!答えとして投稿すると、私はそれを受け入れます! – Sk1X1