将数据从 REST 服务绑定到 ComboBox

Bind data from REST service to ComboBox

我正在尝试创建 ComboBox 填充我从 REST 服务获得的数据。

在我的 window 中,我有获取数据和设置 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);
        }

Class 表示来自 REST 服务的数据:

namespace TestovaciAplikace.Prijem
{
    [DataContract]
    public class Dodavatele
    {
        [DataMember]
        public List<Dodavatel> dodavatele { get; set; }
    }

    public class Dodavatel
    {
        public string CODE { get; set; }
    }
}

最后 class、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是空的。如果我将 ny ViewModel 替换为 return 只有简单的 List<String> 它可以工作(如果我更改绑定属性),但我无法让它与我的 JSON 数据一起工作。有什么建议吗?

由于 ViewModel 和 Dodavatele class 都有 dodavatele 属性,ItemsSource 绑定应该如下所示

ItemsSource="{Binding dodavatele.dodavatele}"