【问题标题】:ListBox Groupstyle display: How to design a group name?ListBox Groupstyle 显示:如何设计组名?
【发布时间】:2011-12-21 23:44:18
【问题描述】:

我想按创建日期将我的项目(图像)分组到 ListBox 中。然后我就用这段代码:

<ListBox.GroupStyle>
            <GroupStyle />
</ListBox.GroupStyle>

但是当我尝试应用一些样式(即边框)时,我没有显示任何组名。只有边框 这是我使用 DateTime 进行分组的新实现:

<ListBox.GroupStyle>
            <GroupStyle>
                <GroupStyle.HeaderTemplate>
                    <DataTemplate>
                        <Border BorderBrush="Gray" BorderThickness="1" CornerRadius="8">
                            <TextBlock Text="{Binding Path=DateCreated}" FontWeight="Bold" HorizontalAlignment="Center"/>
                        </Border>
                    </DataTemplate>
                </GroupStyle.HeaderTemplate>
            </GroupStyle>
        </ListBox.GroupStyle>

这是我主窗口中的 ICollectionView:

ICollectionView view = CollectionViewSource.GetDefaultView(CollectedFiles);
        view.GroupDescriptions.Add(new PropertyGroupDescription("DateCreated", new DateTimeToDateConverter()));
        view.SortDescriptions.Add(new SortDescription("FileFullName", ListSortDirection.Ascending));

注意:我使用 DateTimeToDateConverter() 转换器,它返回没有时间的日期。

【问题讨论】:

    标签: c# .net xaml


    【解决方案1】:

    参考:http://msdn.microsoft.com/en-us/library/system.windows.controls.groupstyle.headertemplate.aspx

    当您使用GroupDescriptions 定义组时,您的视图对象 (CollectionViewSource 对象或派生自 CollectionView) 将每个组包装在一个 CollectionViewGroup 对象中。

    基本上,当您添加PropertyGroupDescription 时,WPF 实际上会生成CollectionViewGroup。您需要绑定到 Name 属性,而不是 DateCreated 属性(WPF 引擎为您创建的新 CollectionViewGroup 上不存在该属性)。

    <ListBox.GroupStyle>
        <GroupStyle>
            <GroupStyle.HeaderTemplate>
                 <DataTemplate>
                      <Border BorderBrush="Gray" BorderThickness="1" CornerRadius="8">
                           <TextBlock Text="{Binding Path=Name}" FontWeight="Bold" HorizontalAlignment="Center" />
                      </Border>
                  </DataTemplate>
              </GroupStyle.HeaderTemplate>
         </GroupStyle>
    </ListBox.GroupStyle>
    

    【讨论】:

    • 哇..太棒了..真的很想念那个..非常感谢..现在它正在显示。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 1970-01-01
    • 2021-12-22
    • 1970-01-01
    • 2014-04-20
    • 2012-05-29
    相关资源
    最近更新 更多