2011-02-24 70 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

相关问题