我正在使用ListView的DataGridColumns。
我有很多情况:
1 - somtimes,列标题只是一个单词'Id',在这种情况下我使用此代码:
<GridViewColumn Width="Auto"
DisplayMemberBinding="{Binding Id}"
Header="Id" />
2-有时,列标题由许多单词组成,在这种情况下,我使用带有TextWrapping的TextBlock以多行显示它们:
<GridViewColumn Width="85"
DisplayMemberBinding="{Binding ManyWordsColumnHeader}" >
<GridViewColumnHeader>
<TextBlock Text="Many words column header"
TextWrapping="Wrap" />
</GridViewColumnHeader>
</GridViewColumn>
3-有时候,这些行的内容是Multibinded(同时有很多属性),如下所示:
<GridViewColumn Header="Fist name & last name">
<GridViewColumn.CellTemplate>
<DataTemplate DataType="models:PersonClass">
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1}">
<Binding Path="FirstName" />
<Binding Path="LastName" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
如果我的列标题名称由多个单词组成,并且行的内容应该多键绑定到多个属性,我该怎么办?
换句话说:我想把第二个和第三个案件合并在一起!
答案 0 :(得分:1)
我还没有真正玩过GridView
,但这种做法对我来说似乎合情合理(万一你还没有)。只需将第3点的XAML与第2点结合起来:
<GridViewColumn Width="85" >
<GridViewColumn.CellTemplate>
<DataTemplate DataType="models:PersonClass">
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} {1}">
<Binding Path="FirstName" />
<Binding Path="LastName" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
<GridViewColumnHeader>
<TextBlock Text="Many words column header"
TextWrapping="Wrap" />
</GridViewColumnHeader>
</GridViewColumn>
您的列中包含“列标题名称由多个单词组成,行内容多键绑定到多个属性”。
答案 1 :(得分:0)
你有几个选择。
将标题的内容更改为ListView,使用 ItemSource设置为标题行列表。
添加MultiValueConverter
,其中包含所有值中的所有值
绑定并返回由Environment.NewLine分隔的字符串。