2016-07-14 2 views
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データで動作することはできません。何かアドバイス?

+0

ようになっているはずの男ああ、ありがとう!それを変更し、それが動作するように見える!答えとして投稿すると、私はそれを受け入れます! – Sk1X1

答えて

1

のViewModelとDodavateleクラスの両方がdodavatele性質を持っているので、のItemsSourceバインディングは、この

ItemsSource="{Binding dodavatele.dodavatele}" 
関連する問題