gpt4 book ai didi

c# - 如何在 XAML 中为自定义 DataGrid 控件指定 GroupDescriptions?

转载 作者:行者123 更新时间:2023-11-30 16:50:12 25 4
gpt4 key购买 nike

我有一个 GroupingGrid 控件,它基本上是一个自定义的 DataGrid。我通过让我的 ViewModel 公开一个 ListCollectionView 并使用 C# 代码手动添加告诉网格如何重新分组的 PropertyGroupDescription 让分组从代码隐藏工作.

我想用普通的 XAML 代替,像这样:

<controls:GroupingGrid GroupedItemSource="{DynamicResource MyViewSource}"
SelectedItem="{Binding MySelectedItem}"
ShowGroupingItemCount="True">
<DataGrid.Resources>
<CollectionViewSource x:Key="MyViewSource" Source="{Binding ViewModel.MyData}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="SomeProperty"
Converter="{StaticResource MyConverter}" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
</DataGrid.Resources>
<DataGrid.Columns>
<!-- column definitions -->
</DataGrid.Columns>

所以我将其添加到我的 GroupingGrid 控件的代码隐藏中:

public static readonly DependencyProperty GroupedItemSourceProperty =
DependencyProperty.Register("GroupedItemSource", typeof (CollectionViewSource), typeof (GroupingGrid));

public CollectionViewSource GroupedItemSource
{
get { return (CollectionViewSource) GetValue(GroupedItemSourceProperty); }
set { SetValue(GroupedItemSourceProperty, value); }
}

它构建,但我得到一个运行时 XamlObjectWriterException 说:

Set property 'System.Windows.ResourceDictionary.DeferrableContent' threw an exception.

所以基本上,我不能在“客户端 xaml”中使用 DataGrid.Resources 来添加诸如 CollectionViewSource.GroupDescriptions 集合之类的东西,因为我不能重新初始化资源字典实例

我唯一的希望是用 C# 代码定义分组,还是有一种简洁的 XAML 方式?

最佳答案

添加 CollectionViewSource 作为 Window/Usercontrol 的资源

<Window.Resources>
<CollectionViewSource x:Key="MyViewSource" Source="{Binding ViewModel.MyData}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="SomeProperty"
Converter="{StaticResource MyConverter}" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
</Window.Resources>

如下所示将其绑定(bind)到您的 DataGrid

<DataGrid ItemsSource="{Binding Source={StaticResource MyViewSource}}"
SelectedItem="{Binding MySelectedItem}"/>

希望这对您有所帮助!

关于c# - 如何在 XAML 中为自定义 DataGrid 控件指定 GroupDescriptions?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35400045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com