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