使用wcf服务消耗的可观察列表填充组合框

时间:2014-03-04 08:12:58

标签: c# wpf wcf combobox

我是WPF的初学者。我正在尝试使用从wcf服务中检索到的可观察集合填充组合框

Combobox xaml代码:

<ComboBox Name="CmbClass" ItemsSource="{Binding}"/>
消费服务:

ServiceReference1.Service1Client ClassList = new ServiceReference1.Service1Client();

CmbClass.DataContext = ClassList.GetClassList();

我没有得到如何填充组合框。有人可以帮帮我吗?

先谢谢

4 个答案:

答案 0 :(得分:1)

如果你使用代码隐藏,你可以直接设置itemssource

<ComboBox Name="CmbClass" />

 ServiceReference1.Service1Client ClassList = new ServiceReference1.Service1Client();

 CmbClass.ItemsSource = ClassList.GetClassList();

然而,你应该看看MVVM和绑定

答案 1 :(得分:0)

首先将DataContext的{​​{1}}设置为包含可观察集合的类。您可以在Window

的构造函数中InitializeComponents()之后立即执行此操作

然后使用:

Window.xaml.cs

其中observableCollectionName是该可观察集合的名称。和nameToDisplay是您希望在comboBox中看到的该集合中某个属性的名称。

答案 2 :(得分:0)

CmbClass.ItemsSource = YourResult;
CmbClass.DisplayMemberPath = "Property you want to display";
CmbClass.SelectedValuePath = "Property you want to bind";

答案 3 :(得分:0)

我得到了如何用WCF消耗的可观察集合来填充组合框  Xaml代码:    Consumingservice:

 public void GetClassList()
{
ServiceReference1.Service1Client ServiceClient = new ServiceReference1.Service1Client();
ObservableCollection<ClassDO> Classlist = ServiceClient.GetClassList();
Cmbclass.ItemsSource = Classlist;
Cmbclass.DisplayMemberPath = "classname";
//Cmbclass.se = "ClassID";
Cmbclass.SelectedValuePath = "classid";

}

现在在windowload方法中调用Getclasslist