C# 如果绑定提供空字符串,则删除DataGrid列中的TextBlock

C# 如果绑定提供空字符串,则删除DataGrid列中的TextBlock,c#,wpf,datagrid,C#,Wpf,Datagrid,我有一个自定义列: <DataGridTemplateColumn Width="*" Header="Name"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <StackPanel> &

我有一个自定义列:

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

我想让文本块{绑定私密}消失,如果它被赋予一个空字符串“”,这样DISPLAYND名称居中,而不是在它上面。

这在WPF中可能吗?


<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>

Perfect,必须删除“{x:Static system:String.Empty}”并放置“任何在XAML中以xxx:in开头的类型都来自非XAML默认命名空间,并且使用在文件顶部定义的xmlns,在本例中为xmlns:system=“clr namespace:system;assembly=mscorlib”。