gpt4 book ai didi

wpf - 将 IGrouping 绑定(bind)到功能区组

转载 作者:行者123 更新时间:2023-12-02 06:51:34 25 4
gpt4 key购买 nike

我使用 WPF 功能区控件并取得了一些成功;我现在尝试使用功能区库,在数据绑定(bind)场景中使用类别。以下是一些示例数据:-

        var data = new[]
{
new { Category = "Sport", Hobby = "Football" },
new { Category = "Sport", Hobby = "Table Tennis" },
new { Category = "Music", Hobby = "Guitar" },
new { Category = "Music", Hobby = "Piano" },
new { Category = "PC", Hobby = "StarCraft 2" },
};

我正在对数据进行分组,并希望在图库中显示按类别分组的项目:-

        IEnumerable CategorisedHobbies;
CategorisedHobbies = data.GroupBy(d => d.Category).ToArray();

一切都相当标准。我的 XAML 如下所示:-

                <ribbon:RibbonGallery ItemsSource="{Binding CategorisedHobbies}">
<ribbon:RibbonGallery.ItemTemplate>
<DataTemplate>
<ribbon:RibbonGalleryCategory Header="{Binding Key}" ItemsSource="{Binding}" MaxColumnCount="1">
<ribbon:RibbonGalleryCategory.ItemTemplate>
<DataTemplate>
<ribbon:RibbonGalleryItem Content="{Binding Hobby}"/>
</DataTemplate>
</ribbon:RibbonGalleryCategory.ItemTemplate>
</ribbon:RibbonGalleryCategory>
</DataTemplate>
</ribbon:RibbonGallery.ItemTemplate>
</ribbon:RibbonGallery>

但是,当应用程序运行时,虽然我正确地获取了功能区库中显示的类别,但每个项目只是一个空白方 block 。我知道集合正在绑定(bind),因为我可以看到类别大小更大,例如运动胜于 PC。

alt text

如果我按如下方式对 XAML 进行硬编码,那么当然一切正常:-

你知道我在这里做错了什么吗?谢谢!

最佳答案

好的,我现在已经“正常”工作了。我要做的不是设置 DataTemplate,而是为 RibbonGallery 上的 ItemsContainerStyle 应用样式。

此样式只需为 RibbonGalleryCategory 类型,并且具有 ItemsSource 的属性 setter 。就我而言,它只是 {Binding},另外我还必须设置 DisplayMemberPath。

我仍然没有完全理解 RibbonGallery 的层次结构以及它如何设计事物 - 但至少这种方法是有效的。

更新:以下是我最初提供的代码示例的相应 XAML:

<r:RibbonWindow.Resources>
<Style TargetType="r:RibbonGalleryCategory" x:Key="HobbyCategoryStyle">
<Setter Property="Header" Value="{Binding Key}"/>
<Setter Property="ItemsSource" Value="{Binding}"/>
<Setter Property="DisplayMemberPath" Value="Hobby"/>
</Style>
</r:RibbonWindow.Resources>
<r:RibbonMenuButton Label="Example menu button">
<r:RibbonGallery ItemsSource="{Binding CategorisedHobbies}" ItemContainerStyle="{StaticResource ResourceKey=HobbyCategoryStyle}"/>
</r:RibbonMenuButton>

关于wpf - 将 IGrouping 绑定(bind)到功能区组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4478308/

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