2016-08-17 6 views
0

プロパティCommission.Vehicle.Owner.Nameが空の場合、私は非表示にしたいTextBlockを持っています。コードはこのように見えます。もちろん、これは動作しません、TextBlockプロパティTextは常に考えと<Run>が空の場合は、テキストブロックを非表示にします。WPF

<Style x:Key="CollapsableTextBlock" TargetType="TextBlock"> 
    <Style.Triggers> 
     <Trigger Property="Text" Value=""> 
      <Setter Property="Visibility" Value="Collapsed"/> 
     </Trigger> 
    </Style.Triggers> 
</Style> 

<TextBlock Style="{DynamicResource CollapsableTextBlock}"> 
    <Run Text="Owner: "/> 
    <Run Text="{Binding Commission.Vehicle.Owner.Name}"/> 
</TextBlock> 

誰も...空になりますか?ありがとう!

+0

ランのTextプロパティは、いない依存関係プロパティです。おそらく、タグDPとコンバーター – nkoniishvt

+0

ああ、を使用して制限をバイパスすることができます。それから別の方向に考えなければなりません。答えてくれてありがとう。 @nkoniishvt –

+0

@nkoniishvt [MSDN](https://msdn.microsoft.com/en-us/library/system.windows.documents.run.text(v = vs.110).aspx)から:* .NET Framework 4、RunオブジェクトのTextプロパティは依存関係プロパティです。* – Clemens

答えて

6

A DataTriggerは動作するはずです:あなたはそれをバインドすることはできませんので

<Style x:Key="CollapsableTextBlock" TargetType="TextBlock"> 
    <Style.Triggers> 
     <DataTrigger Binding="{Binding Commission.Vehicle.Owner.Name}" Value=""> 
      <Setter Property="Visibility" Value="Collapsed"/> 
     </DataTrigger> 
    </Style.Triggers> 
</Style> 
+0

これは機能します。 'DataTrigger'がキーでした。ありがとうございました!これを5分で正解とします。 –

関連する問題