如果绑定给出空字符串,则擦除DataGrid列中的TextBlock

时间:2013-02-12 19:33:35

标签: c# wpf datagrid

我有一个自定义列:

            <DataGridTemplateColumn Width="*" Header="Name">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <StackPanel>
                            <TextBlock Text="{Binding DisplayName}" />
                            <TextBlock Foreground="Gray" Text="{Binding PrivateMessage}" />
                        </StackPanel>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

如果给出一个空字符串“”,我希望TextBlock {Binding PrivateMessage}消失,以便DisplayName位于中间而不是它的顶部。

这可以在WPF中使用吗?

1 个答案:

答案 0 :(得分:1)

<DataTemplate>
    <StackPanel VerticalAlignment="Center">
        <TextBlock Text="{Binding DisplayName}" />
        <TextBlock x:Name="message" Foreground="Gray" Text="{Binding PrivateMessage}" />
    </StackPanel>
    <DataTemplate.Triggers>
        <DataTrigger Binding="{Binding PrivateMessage}" Value="{x:Static system:String.Empty}">
            <Setter TargetName="message" Property="Visibility" Value="Collapsed" />
        </DataTrigger>
    </DataTemplate.Triggers>
</DataTemplate>