c# - 在 GridView 上分组项目

标签 c# xaml windows-8 windows-runtime winrt-xaml

我有一个警报模型对象,它有一个 Repeat 集合,其中包含警报应重复的日期。我想在星期几(如星期一、星期二等)下分组的 GridView 中显示警报。

我正在将所有这些警报添加到“警报”集合中

对于警报中的每个警报,我再次在警报的重复集合中为每一天创建警报,并将它们全部添加到集合“TotalAlarms”中。

foreach (Alarm alarm in this.Config.Alarms)
        {
            foreach (DayOfWeek day in alarm.Repeat)
            {
                this.tempAlarm = this.CopyAlarm(alarm);

                tempAlarm.DayOfWeek = day;                 

                TotalAlarms.Add(tempAlarm);
            }
        }

我正在使用 linq 对警报模型的 DayOfWeek 属性进行分组,该属性指示警报应在哪一天响起。

var result = from t in _ViewModel.TotalAlarms
                     group t by  t.DayOfWeek into q                        
                     orderby q.Key
                     select q;

并将此结果添加到 groupedItemsViewSource(绑定(bind)到 GridView 的项目源)

groupedItemsViewSource.Source = result;

对于 GridView 的标题,我将其绑定(bind)到“Key”

<TextBlock Text="{Binding Key}" Style="{StaticResource TitleTextStyle}" FontSize="20" HorizontalAlignment="Stretch" VerticalAlignment="Center" Width="100" Height="30" Margin="5"/>

此方法仅显示有警报的星期几。就像将闹钟设置为星期五和星期六一样,组标题中只会显示星期五和星期六。

我想要的是所有日子都显示为组标题,如果那天没有警报,那么它可以是空的。但是组标题应该全天显示。

我真的很难想出一种方法来做到这一点。如果有人有任何想法,请在这里帮助我....

谢谢

最佳答案

关于c# - 在 GridView 上分组项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13814935/

相关文章:

wpf - 水平 Stackpanel 填充父控件

clr - 用 JavaScript 或 C++ 编写的 Metro 风格应用程序是否加载 CLR?

c# - 在.NET Core中使用SHA-1

c# - webkitbrowser 在网络上加载共享文件

c# - ObservableCollection 未绑定(bind)到组合框

c# - 动态加载 ResourceDictionary

windows-8 - 如何在 Windows 8 中启用开始菜单?

javascript - 通过 ListView 的 ItemInvoked 事件以编程方式设置输入框的焦点 [Windows 8 Metro HTML5]

c# - 如何计算数据库中具有 3 个不同值的列中的数据并将其显示在图形中?

c# - 在 GridView 中启用和禁用按钮