WPF – GridView.GridViewColumn每行两行?

您好,有可能有一个ListView – > ListView.View – > GridView – > GridViewColumn每行“两行”。
例如。
第1栏| 栏目2
行1 blah | 数据
胡说
行2等| 更多

我尝试使用Cell模板失败,但是当手动调整其包含列时,模板内的项目不会resize。

码:

                 

有任何想法吗?

编辑:这是使用MVVM所以没有代码背后只有一个有界的ViewModel

好的,我会再试一次。 您是否尝试过使用TextWrapping并将TextWrapping设置为WrapCellTemplate

例如:

                   

首先,CellTemplate是在单元格内部获得自定义内容的方法。 例如,你可以在CellTemplate中有一个垂直的StackPanel。

接下来,要在更改列宽时自动调整单元格的内容,需要在ListViewItem上指定Horizo​​ntalContentAlignment =“Stretch”:

    

忍受我,因为我不是100%确定这是你要求的。 但是,假设您希望每一行下面都有更多文本(即Outlook自动预览function ),我想我可以提供帮助。

您需要覆盖ListViewItem的默认样式并更改ControlTemplate以在GridViewRowPresenter下添加TextBlock 。 当你完成后,它看起来像这样:

  

你可能必须想要绑定TextBlockWidth ,以便它将在ListView包装,但这应该让你开始。

这就是我所做的。

                   

我觉得这是一个问题的简单解决方案,当涉及到每个记录2行时,许多人已经遇到这个问题,同时仍然能够使用gridview控件附带的分页和排序等。 我会给你代码并尝试尽我所能解释它。

                        Message  
<%# Eval("carveOutMessage")%>

诀窍在于自定义TemplateField ItemTemplate。

首先要知道的是,在创建TemplateField时,在html源代码中呈现的内容是一个新的打开和关闭TD标记。 在创建最后一列之后,它将关闭具有结束标记的行。 因此,创建模板字段打开和关闭以及打开和关闭ItemTemplate标记。 在其中你要做的第一件事是关闭open td标签“”然后打开tr标签“”。 然后创建一个新行和一个新列标记。 现在,如果列需要为某种描述或注释列宽。 使用columnspan = 10或者你需要多少。 因为Templatefield将关闭TD标记,所以最后一个td标记不应该有一个结束标记,而你的最后一行不应该有一个结束TR标记,因为它将在结束标记的位置被关闭。

我希望这对人们有所帮助并且足够清楚。 您可以使用此方法根据需要为每条记录创建任意数量的行。 如果你对html和表格有任何好处,也可以做任何其他格式化的事情。 关键是要记住,当你开始时,你在一个打开的td和tr标签内进行格式化,最后它将写入一个关闭的td和tr标签,所以保持你的最后一列和行打开。