2012-12-26 56 views
0

我有一個非常大的網格,我在下面顯示了我的一些XAML,但它不應該顯示該行上的Textblockes,如果該值爲空。
我該如何創建?有很多信息的網格 - 不顯示時爲空

<Grid x:Name="JobDetailGrid"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="Auto"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="Auto"/> 
     <ColumnDefinition Width="10" /> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 
    <TextBlock Grid.Row="0" Grid.Column="0" x:Uid="JobDetailTaskType" /> 
    <TextBlock Grid.Row="0" Grid.Column="2" x:Uid="JobDetailTaskTypeSrv" Text="{Binding TaskType}" /> 
    <TextBlock Grid.Row="1" Grid.Column="0" x:Uid="JobDetailStatus" /> 
    <TextBlock Grid.Row="1" Grid.Column="2" x:Uid="JobDetailStatusSrv" Text="{Binding Status}" /> 
    <TextBlock Grid.Row="4" Grid.Column="0" x:Uid="JobDetailApproved" /> 
    <TextBlock Grid.Row="4" Grid.Column="2" x:Uid="JobDetailApprovedSrv" Text="{Binding Approved}" /> 

也許我能做到這一點在C#中,但我想,如果我可以做一個綁定或創建一個StackPanel,但StackPanel的,因爲我看到它,問題是,我需要每個之後創建保證金TextBlock

或者是否需要爲此創建自己的用戶控制?

回答

1

這可以很容易地通過綁定完成!您需要創建一個converter,將採取一個字符串,並返回一個知名度(所以空字符串將隱藏文本框),然後設置文本塊的知名度如下: -

<TextBlock Grid.Row="0" Grid.Column="0" x:Uid="JobDetailTaskType" Visibility={Binding TaskType, Converter={StaticResource visibilityConverter}}/> 

將雙方的知名度文本塊的(標籤和值),並且由於您的高度爲自動,所以您不需要關注邊距。

+0

行也隱藏了嗎? – The87Boy

+0

是的,因爲它設置爲自動 - 你不想隱藏它嗎? –

+0

如果沒有價值,是的 – The87Boy