GroupBox Header Not Showing
我关注了一个 StackOverflow 问题,该问题有一个指向另一篇文章的链接,关于如何对数据进行分组,但我的标题没有显示。有人可以指出为什么我的标题没有显示在我的数据分组中的问题。我看到的文章和我的标记之间唯一不同的是我的数据格式不同,但我无法控制如何接收它。
我的数据表示:
1 2 3 4 5 6 7 8 | <MyDetails xmlns="clr-namespace:MyCompany.Mapping;assembly=Mapping" xmlns:scg="clr- namespace:System.Collections.Generic;assembly=mscorlib" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"> <MyDetails.Details> <scg:List x:TypeArguments="MyAttributes" Capacity="64"> <MyAttributes Bit="0" Channel="1" Name="SomeName" IOAttribute="O" /> </scg:List> </MyDetails.Details> </MyDetails> |
我绑定到的 ViewModel 属性:
1 2 |
MyDetails 类公共属性(定义为 DataMember):
1 |
MyAttributes 类公共属性(全部定义为 DataMembers):
1 2 3 4 | property string Channel {get; set;} property string Bit {get; set;} property string Name {get; set;} property string Attribute {get; set;} |
XAML 资源标头:
1 2 3 4 5 | <CollectionViewSource x:Key="MyDetails" Source="{Binding Channels[0].Details}"> <CollectionViewSource.GroupDescriptions> <PropertyGroupDescription PropertyName="Channel" /> </CollectionViewSource.GroupDescriptions> </CollectionViewSource> |
XAML:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <ItemsControl ItemsSource="{Binding Source={StaticResource MyDetails}}"> <ItemsControl.GroupStyle> <GroupStyle> <GroupStyle.ContainerStyle> <Style TargetType="{x:Type GroupItem}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type GroupItem}"> <GroupBox Margin="10"> <GroupBox.Header> <TextBlock Text="{Binding Channel}" FontWeight="Bold" FontSize="16" /> <!-- Does not show --> </GroupBox.Header> <ItemsPresenter /> </GroupBox> </ControlTemplate> </Setter.Value> </Setter> </Style> </GroupStyle.ContainerStyle> </GroupStyle> </ItemsControl.GroupStyle> <ItemsControl.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <TextBlock Text="{Binding Path=Bit}" Width="50" /> <TextBlock Text="{Binding Path=Name}" Width="150" /> <TextBlock Text="{Binding Path=Attribute}" Width="50" /> </StackPanel> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl> |
分组的值
1 2 3 | <GroupBox.Header> <TextBlock Text="{Binding Name}" FontWeight="Bold" FontSize="16" /> </GroupBox.Header> |