C# 在DataGrid WPF中的某些条件后添加分隔符
我正在制作一个聊天窗口,当一个新日期出现在绑定为datagrid项目源的列表的特定列中时,我想在其中添加一个水平分隔符。有可能吗?如果有,怎么可能? 任何帮助都将不胜感激 以下是我想做的:C# 在DataGrid WPF中的某些条件后添加分隔符,c#,wpf,C#,Wpf,我正在制作一个聊天窗口,当一个新日期出现在绑定为datagrid项目源的列表的特定列中时,我想在其中添加一个水平分隔符。有可能吗?如果有,怎么可能? 任何帮助都将不胜感激 以下是我想做的: 刚刚选中,是的,您可以使用分组: a) 向表示消息的对象添加新属性。此属性将根据日期返回字符串值(类似于DayOfWeek.ToString();) b) 将您的收藏按此新属性分组(使用) c) 为组设置样式,大致如下所示(您需要添加画布或带有线条的东西,并可能将DockPanel的宽度绑定到其父宽度):
刚刚选中,是的,您可以使用分组: a) 向表示消息的对象添加新属性。此属性将根据日期返回字符串值(类似于
DayOfWeek.ToString();
)
b) 将您的收藏按此新属性分组(使用
)
c) 为组设置样式,大致如下所示(您需要添加画布或带有线条的东西,并可能将DockPanel的宽度绑定到其父宽度):
另外,如果你想用相同的模式对一周以上的邮件进行分组,那么这当然是行不通的。在这种情况下,您可以尝试按两个属性分组。不过,我会将所有内容都放在“older”中。如果您提供代码示例,回答起来会更容易。事实上,如果列表实现了
INotifyPropertyChanged
接口,我可以建议处理PropertyChanged
事件(如果没有,请确保它实现了)@NadiaChibrikova我刚刚写了聊天代码,还没有尝试任何分隔符的方法。因为我什么都想不出来。如果你想要聊天代码,我可以给你。我制作了一个3列的数据网格。其中两列显示了图片和消息,第三列显示了,我正在显示时间。我想做的是在列表中的每个新日期后添加一个分隔符谢谢,现在它有意义了,忽略我之前的评论吧。从逻辑上讲,您希望对消息进行分组,因此我想您可以在不使用扩展器的情况下创建分组元素,所以应该可以。@NadiaChibrikova您能告诉我如何使第二个组有条件吗?哪一个组?在什么意义上是有条件的?
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Margin" Value="0,0,0,5"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<StackPanel>
<DockPanel LastChildFill="True">
<TextBlock Text="{Binding Path=Name}" DockPanel.Dock="Right"/>
<!-- here comes the line -->
</DockPanel>
<ListBox>
<ListBox.Items>
<ItemsPresenter />
</ListBox.Items>
</ListBox>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</DataGrid.GroupStyle>