在UserControl内部的DataGrid中分组

时间:2018-06-28 16:40:16

标签: c# wpf datagrid user-controls

我实现了一个内部有DataGrid的UserControl和一些控件来启用对DataGrid各项的分页。一切都按我预期的那样工作正常。我可以浏览页面,并通过字符串过滤项目。我可以跳到某个页面。还有更多。

现在,我想支持项目的分组:

因此,我使用以下代码:

OriginalItemsSourceView.GroupDescriptions.Add(new PropertyGroupDescription("Lastname"));

姓氏是Model的属性,该属性作为OriginalItemsSource绑定到我的PagedDataGrid。

这很好用。我的PagedDataGrid中的项目按模型的姓氏分组。

现在,我想像this文章中那样对分组进行可视化。

    <DataGrid.GroupStyle>
        <GroupStyle>
            <GroupStyle.ContainerStyle>
                <Style TargetType="{x:Type GroupItem}">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type GroupItem}">
                                <StackPanel>
                                    <TextBlock Text="{Binding Name}"/>
                                    <ItemsPresenter/>
                                </StackPanel>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </GroupStyle.ContainerStyle>
        </GroupStyle>
    </DataGrid.GroupStyle>

不幸的是,这不起作用。在VisualStudio的输出中,我可以多次看到以下绑定错误:

System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.DataGrid', AncestorLevel='1''. BindingExpression:Path=AreRowDetailsFrozen; DataItem=null; target element is 'DataGridDetailsPresenter' (Name=''); target property is 'SelectiveScrollingOrientation' (type 'SelectiveScrollingOrientation')
System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='System.Windows.Controls.DataGrid', AncestorLevel='1''. BindingExpression:Path=HeadersVisibility; DataItem=null; target element is 'DataGridRowHeader' (Name=''); target property is 'Visibility' (type 'Visibility')

我不明白为什么这对我不起作用。我已经在另一个项目中做了同样的事情。

0 个答案:

没有答案