我是WPF的初学者。我正在尝试使用从wcf服务中检索到的可观察集合填充组合框
Combobox xaml代码:
<ComboBox Name="CmbClass" ItemsSource="{Binding}"/>
消费服务:
ServiceReference1.Service1Client ClassList = new ServiceReference1.Service1Client();
CmbClass.DataContext = ClassList.GetClassList();
我没有得到如何填充组合框。有人可以帮帮我吗?
先谢谢
答案 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