我跟着这个StackOverflow问题,该问题有另一篇文章的链接,关于如何分组数据,但我的标题没有显示。有人能指出我为什么我的标题没有显示在我的数据分组中的问题。我看到文章和我的标记之间唯一不同的是我的数据格式不同,但我无法控制如何收到它。
表示我的数据:
<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属性:
ObservableCollection<MyDetails> Channels= new
ObservableCollection<MyDetails>();
MyDetails类公共属性(定义为DataMember):
List<MyAttributes> Details = new List<MyAttributes>();
MyAttributes类公共属性(全部定义为DataMembers):
property string Channel {get; set;}
property string Bit {get; set;}
property string Name {get; set;}
property string Attribute {get; set;}
XAML资源标题:
<CollectionViewSource x:Key="MyDetails" Source="{Binding Channels[0].Details}">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="Channel" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
XAML:
<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>
答案 0 :(得分:0)
DataContext
的 GroupItem
将为CollectionViewGroup
类型,其中包含有关Items
或Name
等每个群组的信息。您需要将组标题中的绑定更改为Name
,这将是按
<GroupBox.Header>
<TextBlock Text="{Binding Name}" FontWeight="Bold" FontSize="16" />
</GroupBox.Header>