2011-02-24 69 views
10

我有一個網格,其行需要根據視圖模型動態調整大小。我想要做的事情如下:是否可以在Grid RowDefinitions上使用觸發器?

<RowDefinition Height="2*"> 
    <RowDefinition.Style> 
     <Style> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=ShowSection}" Value="True"> 
        <Setter Property="RowDefinition.Height" Value="2*"/> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding Path=ShowSection}" Value="False"> 
        <Setter Property="RowDefinition.Height" Value="0"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </RowDefinition.Style> 
</RowDefinition> 

這編譯,沒有引發錯誤,但似乎沒有任何效果。是否有我丟失的東西,或者網格不允許在表單繪製之後調整它的行大小或出現這種效果?

回答

15

我認爲你的Xaml代碼唯一的問題是你通過在RowDefinition上明確設置Height來覆蓋DataTrigger。嘗試使用安裝程序代替

<RowDefinition> 
    <RowDefinition.Style> 
     <Style> 
      <Setter Property="RowDefinition.Height" Value="2*"/> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=ShowSection}" Value="True"> 
        <Setter Property="RowDefinition.Height" Value="2*"/> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding Path=ShowSection}" Value="False"> 
        <Setter Property="RowDefinition.Height" Value="0"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </RowDefinition.Style> 
</RowDefinition> 
+0

是的。只要我刪除了高度的明確設置,問題就消失了。接得好! – GWLlosa 2011-02-24 14:25:56

+0

爲什麼我應該指出RowDefinition.Height以及爲什麼只有Height屬性不起作用?我不明白 – MrScf 2014-12-08 15:16:44

4

我知道這篇文章是3歲,但它仍然可以幫助某人。

<RowDefinition> 
    <RowDefinition.Style> 
     <Style TargetType="RowDefinition"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Path=ShowSection}" Value="True"> 
        <Setter Property="Height" Value="2*"/> 
       </DataTrigger> 
       <DataTrigger Binding="{Binding Path=ShowSection}" Value="False"> 
        <Setter Property="Height" Value="0"/> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </RowDefinition.Style> 
</RowDefinition> 

我處於同樣的情況,我設法通過將TargetType設置爲RowDefinition來實現它。

+0

RowDefinition.Height可以縮小到高度 – Dummy 2016-10-14 02:53:27

+1

@Dummy - 感謝您的糾正,請參閱更新的XAML :) – 2016-10-17 14:02:05

相關問題