Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否在WPF中为PropertyGroupDescription分配相关的表列?_C#_Wpf_Combobox_Uicollectionview - Fatal编程技术网

C# 是否在WPF中为PropertyGroupDescription分配相关的表列?

C# 是否在WPF中为PropertyGroupDescription分配相关的表列?,c#,wpf,combobox,uicollectionview,C#,Wpf,Combobox,Uicollectionview,当我在组合框中显示这些项目时,我使用ListCollectionView对可观察的收集项目进行分组,我有一个与账户类型相关的账户表,我想在组合框中显示按账户类型分组的账户列表 我用账目填写了可观的收款单 IQueryable<account> accountQuery = _context.account; ocAccounts = new ObservableCollection<account>(accountQuery); 组合框将显示组项目,但不显示组标题 我

当我在组合框中显示这些项目时,我使用ListCollectionView对可观察的收集项目进行分组,我有一个与账户类型相关的账户表,我想在组合框中显示按账户类型分组的账户列表

我用账目填写了可观的收款单

IQueryable<account> accountQuery = _context.account;
ocAccounts = new ObservableCollection<account>(accountQuery);
组合框将显示组项目,但不显示组标题


我错过的是

我刚刚创建了一个数据示例并对其进行了调试,您需要更改xaml代码以绑定组头和linq查询以将account表与相关表连接起来

这是您的代码(Northwind的数据示例):

那么您需要这个Xaml:

   <StackPanel>
    <ComboBox x:Name="comboBox">
        <ComboBox.GroupStyle>
            <GroupStyle>
                <GroupStyle.HeaderTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name}"/>
                    </DataTemplate>
                </GroupStyle.HeaderTemplate>
            </GroupStyle>
        </ComboBox.GroupStyle>
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding orid}"/>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>
</StackPanel>

它的输出:


我尝试了这个方法,是的,它是有效的,我的问题是如何使用相关的数据库表,但我不知道accountQuery中有什么数据。您可以使用带有account\u type表的linq将其联接。@Mohammed,是的,但如何做呢?我将更新我的答案,我将创建一个linq联接的示例。如果你能分享你的疑问,我将不胜感激。
     IQueryable<CustomOrder> accountQuery = from cu in context.Customers join 
                                            o in context.Orders on cu.CustomerID equals o.CustomerID
                                            orderby cu.CustomerID
                                            select new CustomOrder
                                            {
                                                cucity=cu.City,
                                               orid=o.OrderID
                                            };

      var ocAccounts = new ObservableCollection<CustomOrder>(accountQuery);
      ListCollectionView lcv = new ListCollectionView(ocAccounts);
      lcv.GroupDescriptions.Add(new PropertyGroupDescription("cucity"));
      this.comboBox.ItemsSource = lcv;
   internal  class CustomOrder
    {
      public  string cucity { get; set; }
      public int orid { get; set; }
    }
   <StackPanel>
    <ComboBox x:Name="comboBox">
        <ComboBox.GroupStyle>
            <GroupStyle>
                <GroupStyle.HeaderTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name}"/>
                    </DataTemplate>
                </GroupStyle.HeaderTemplate>
            </GroupStyle>
        </ComboBox.GroupStyle>
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding orid}"/>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>
</StackPanel>