繁体   English   中英

自定义DataGridColum标头时使用MultiBinding

[英]Using MultiBinding when DataGridColum header was customized

我正在自定义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>

如果我的列标题名称由许多单词组成,并且行的内容应与许多属性组合在一起,该怎么办?

换句话说:我想将第二种情况和第三种情况结合在一起!

我还没有真正玩过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. 将标题的内容更改为ListView,并将ItemSource设置为字幕行的列表。

  2. 添加一个MultiValueConverter ,它从所有绑定中获取所有值,并返回一个由Environment.NewLine分隔的字符串。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM