2016-01-13 35 views
0

你好我不知道为什么我的风格触发器不工作取决于自定义枚举?代码如下:WPF风格触发器不与定制枚举工作

<Style x:Key="FontAwesomeIconBase" 
      BasedOn="{StaticResource FontAwesomeFont}" 
      TargetType="{x:Type Grid}"> 
     <Setter Property="HorizontalAlignment" Value="Stretch" /> 
     <Setter Property="VerticalAlignment" Value="Stretch" /> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Tag}" Value="FontIcon.None"> 
       <Setter Property="Visibility" Value="Hidden"></Setter> 
      </DataTrigger> 
      <Trigger Property="Tag" Value="FontIcon.None"> 
       <Setter Property="Visibility" Value="Hidden" /> 
      </Trigger> 
      <Trigger Property="Tag" Value="None"> 
       <Setter Property="Visibility" Value="Hidden" /> 
      </Trigger> 
      <Trigger Property="Tag" Value="{x:Null}"> 
       <Setter Property="Visibility" Value="Hidden" /> 
      </Trigger> 
    </Style.Triggers> 
    </Style> 

我试过DataTrigger,但stil不工作。有任何想法吗?

+0

没有。实际上,我尝试了近10个关于值的不同组合,但它没有帮助:) –

+0

您基本上绑定了触发器中的字符串,但您没有告诉Enum值应该位于何处。 –

回答

3

在窗口/用户控件文件添加枚举的XMLNS空间(namespace)引用(它定义),如下写:

xmlns:font="clr-namespace:YourEnumNameSpace" 


<Trigger Property="Tag" Value="{x:Static font:FontIcon.None}"> 
    <Setter Property="Visibility" Value="Hidden"></Setter> 
</Trigger> 

使用X:Static关键字与价值比你EnumClassName.EnumValue。希望这会帮助你。

+0

谢谢我用你的答案,但没有帮助。我仍然看到窗口上的网格 –

+0

在这种情况下,请确保您的Tag属性正确绑定。 –

+0

我改变了DataTrigger触发器,它的工作 –