2017-10-02 14 views
1

私はTreeViewをWPFアプリケーションで動作させることができました。私はHierarchialDataTemplatesを使ってデータを表示しています。私のデータはVehicleのリストで、各VehicleにはTerritoryプロパティがあります。プロパティの値に基づいてTextBlockの可視性を変更するには

TerritoryプロパティがNullになることがあります。これは、車両が地理的地域に割り当てられていない場合に発生します。

私がツリービューで希望の視覚的表現は、このようなものでなければなりません:Vehicle.TerritoryがNULLの場合

Vehicle_Name (Territory_Name)

私はを希望太字ののテキストを削除します。それが残っているならば、車名の最後にこの奇妙な空のかっこがあります。

DataTriggerを使用しようとしましたが、テリトリの値がnullの場合でも太字のテキストが残ります。

<HierarchicalDataTemplate DataType="{x:Type self:TreeVehicleItem}" ItemsSource="{Binding ClientLocations}"> 
    <StackPanel Orientation="Horizontal"> 
     <TextBlock Text="{Binding Name}" /> 
     <TextBlock FontWeight="Bold" Padding="10 0 0 0"> 
      <TextBlock.Style> 
       <Style TargetType="TextBlock"> 
        <Setter Property="Visibility" Value="Visible" /> 
        <Style.Triggers> 
         <DataTrigger Binding="{Binding Territory}" Value="x:Null"> 
          <Setter Property="Visibility" Value="Collapsed" /> 
         </DataTrigger> 
        </Style.Triggers> 
       </Style> 
      </TextBlock.Style> 
     (<Run Text="{Binding Territory.Name}" />) 
     </TextBlock> 
    </StackPanel> 
</HierarchicalDataTemplate> 

私はTerritoryプロパティが実際にNullだけでなく、空のリストであることを確認しました。

TerritoryプロパティがNullの場合、太字のTextBlockを消すにはどうすればよいですか?

答えて

3

これはストリング"x:Null"

Value="x:Null" 

であるこれは、実際nullを返し、markup extension NullExtensionあります。これはあなたが望むものです。

Value="{x:Null}" 
+1

*ヘッドスラップ*ありがとうございました! –

関連する問題