【问题标题】:filling combobox with observable list which consumed from wcf service用 wcf 服务消耗的可观察列表填充组合框
【发布时间】:2014-03-04 08:12:57
【问题描述】:

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

组合框 xaml 代码:

<ComboBox Name="CmbClass" ItemsSource="{Binding}"/>

消费服务:

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

CmbClass.DataContext = ClassList.GetClassList();

我不知道如何填充组合框。谁能帮帮我?

提前致谢

【问题讨论】:

    标签: c# wpf wcf combobox


    【解决方案1】:

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

    <ComboBox Name="CmbClass" />
    
     ServiceReference1.Service1Client ClassList = new ServiceReference1.Service1Client();
    
     CmbClass.ItemsSource = ClassList.GetClassList();
    

    不过你应该看看 MVVM 和绑定

    【讨论】:

    • 是的,如果你想使用Binding,那么你应该选择 MVVM。否则建议的答案将起作用。
    【解决方案2】:

    首先将WindowDataContext 设置为包含可观察集合的类。您可以在Window.xaml.cs 的构造函数中的InitializeComponents() 之后立即执行此操作

    然后使用这个:

    <ComboBox Name="CmbClass" ItemsSource="{Binding observableCollectionName}"
        DisplayMemberPath="nameToDisplay"/>
    

    其中 observableCollectionName 是该可观察集合的名称。 nameToDisplay 是您希望在组合框中看到的该集合中的属性之一的名称。

    【讨论】:

      【解决方案3】:
      CmbClass.ItemsSource = YourResult;
      CmbClass.DisplayMemberPath = "Property you want to display";
      CmbClass.SelectedValuePath = "Property you want to bind";
      

      【讨论】:

      • 你能告诉我什么是 cbotest 以及必须在属性中给出什么......你能给我示例代码吗
      • CmbClass 是组合框的名称,property 是类的属性/字段
      【解决方案4】:

      我知道了如何用 WCF 消耗的可观察集合填充组合框 Xaml 代码: 消费服务:

       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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-03-12
        相关资源
        最近更新 更多