2013-02-12 36 views
0

我有一個自定義列:擦除的TextBlock在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的{結合PrivateMessage}消失,如果它被賦予一個空字符串「」,使得DisplayName居中,不在其上。

這是可能的WPF?

回答

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

完美,不得不刪除:「{X:靜態系統:的String.Empty}」,並把「」 – user2011736 2013-02-12 20:21:21

+0

任何類型的具有前綴XXX:在XAML是從非XAML默認名稱空間,並使用在文件頂部定義的xmlns,在本例中爲xmlns:system =「clr-namespace:System; assembly = mscorlib」。 – 2013-02-12 20:24:08