2016-08-17 37 views
0

我有一個TextBlock,我想隱藏如果屬性Commission.Vehicle.Owner.Name爲空。代碼看起來像這樣。當然,這並不工作,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

潤的文字是一個屬性,而不是依賴項屬性,所以你不能綁定。你可以繞過使用Tag DP和轉換器的限制 – nkoniishvt

+0

哦,okey。那麼必須朝另一個方向思考。謝謝你的答案。 @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

一個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分鐘內接受此爲正確答案。 –