【问题标题】:Grouping ListBox with Date on same line as Data将日期分组列表框与数据在同一行
【发布时间】:2017-04-28 11:33:58
【问题描述】:

我有一个绑定到名为“Schedules”的 ListCollectionView 的 ListBox。

<ListBox Grid.Row="2" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ItemsSource="{Binding Schedules}">
    <ListBox.GroupStyle>
        <GroupStyle>
            <GroupStyle.HeaderTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Name}" />
                </DataTemplate>
            </GroupStyle.HeaderTemplate>
        </GroupStyle>
    </ListBox.GroupStyle>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Background="Transparent">
                <Grid Background="Transparent">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition  Width="100"/>
                        <ColumnDefinition  Width="100"/>
                        <ColumnDefinition/>
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition/>
                    </Grid.RowDefinitions>
                    <!--I want my DateTime Grouping Here basically-->
                    <!--<TextBlock Grid.Column="0" Grid.Row="0"  Text="{Binding MyDateTime}" HorizontalAlignment="Left"  VerticalAlignment="Center"/>-->
                    <TextBlock Grid.Column="1" Grid.Row="0"  Text="{Binding MyDateTime, StringFormat='t'}" HorizontalAlignment="Left"  VerticalAlignment="Center"/>
                    <TextBlock Grid.Column="2" Grid.Row="0"  Text="{Binding SomeText}"  TextTrimming="WordEllipsis" LineStackingStrategy="MaxHeight" MaxHeight="20" HorizontalAlignment="Left"  VerticalAlignment="Center"/>
                </Grid>
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

在我的视图模型中,我只按日期对它进行分组(我使用 ValueConverter,它只给我一个日期:

Schedules.GroupDescriptions.Add(new PropertyGroupDescription("MyDateTime", new DateTimeToDateOnlyConverter()));

是否可以进行分组但将其与其他数据显示在同一行? 现在你有一个案例:

我的日期时间
-----------------时间 |一些文本
-----------------时间 |一些文本
-----------------时间 |一些文本
我的日期时间2
-----------------时间 |一些文本

我希望它显示如下:

我的日期时间 |时间 |一些文本
|时间 |一些文本
|时间 |一些文本
我的日期时间 |时间 |一些文本
|时间 |一些文本
|时间 |一些文字

【问题讨论】:

    标签: c# wpf listbox listcollectionview


    【解决方案1】:

    将 grid.rowspan 添加到您的 xaml 以合并行

    &lt;TextBlock Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" Text="{Binding MyDateTime}" HorizontalAlignment="Left" VerticalAlignment="Center"/&gt;

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 2019-02-18
      • 1970-01-01
      • 2020-05-10
      • 2017-05-24
      • 2022-01-01
      • 2022-06-14
      • 1970-01-01
      相关资源
      最近更新 更多