gpt4 book ai didi

c# - 无法通过 Style 为 ListBox 设置 GroupStyle?

转载 作者:行者123 更新时间:2023-12-04 00:45:02 28 4
gpt4 key购买 nike

我正在尝试创建一个 Style 来为我的 ListBox 控件设置 GroupStyle 属性,但是我遇到了编译时错误:

The Property Setter 'GroupStyle' cannot be set because it does not have an accessible set accessor. 

我的 Style setter 看起来像这样:

        <Setter Property="ListBox.GroupStyle">
<Setter.Value>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}" />
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</Setter.Value>
</Setter>

是否有解决此问题的方法,而且,如果此属性没有 setter ,那么我们如何能够在 XAML 中使用属性 setter 语法来内联定义它,首先? (对 WPF 还是新手)

最佳答案

我刚刚找到答案 - 这是因为 XAML 编译器根据映射到我刚刚记得的内容的属性类型来处理元素标记之间的任何内容的方式!

如果该属性是一个 ContentControl,那么您在两个标记之间定义的元素将分配给该 Content 属性,但是,如果该元素是一个 IList 的实例(GroupStyle 是什么),那么 .NET 实际上会调用 . Add() 在幕后

在这种情况下,GroupStyle 实际上是一个 ObservableCollection,因此是一个 IList,因此我们实际上并没有分配给 GroupStyle 对象,而是添加到集合中。

换句话说,元素标记之间的内容(通过控件的 ContentProperty 属性映射)表示的属性类型会影响 XAML 编译器解释它的方式(直接赋值或调用 .Add())

关于c# - 无法通过 Style 为 ListBox 设置 GroupStyle?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12022529/

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