无法通过DataTemplates设置控件的可见性

时间:2014-01-31 17:57:14

标签: c# wpf xaml

所以,我正在构建一个包含不同用户帐户的订单跟踪应用程序,其中一些用户帐户的需求比其他用户少。这意味着某些帐户会显示某些控件,而其他帐户则会隐藏这些控件。

Window的datacontext设置为我的Order类,文本字段中的数据绑定在显示特定Order的属性方面非常有效。但是,我所做的DataTemplates和Triggers似乎根本没有做任何事情,我不完全确定原因。我看了整个网络,我似乎无法找到它为什么不起作用。这是XAML:

    <Label Name="StatusLabelText" Content="Status:" FontSize="15" DockPanel.Dock="Top">
        <Label.Resources>
            <DataTemplate DataType="x:Type local:Order">
                <DataTemplate.Triggers>
                    <DataTrigger Binding="{Binding Path=selectedAccount}" Value="Color Correct">
                        <Setter Property="Visibility" Value="Hidden"></Setter>
                    </DataTrigger>
                </DataTemplate.Triggers>
            </DataTemplate>
        </Label.Resources>
    </Label>

1 个答案:

答案 0 :(得分:3)

如果hide label值为selectedAccount,我怀疑你想 Color Correct

如果我的假设是正确的,你需要Style来做那个而不是模板,这可以这样做:

<Label Name="StatusLabelText" Content="Status:" FontSize="15"
       DockPanel.Dock="Top">
   <Label.Style>
      <Style TargetType="Label">
         <Style.Triggers>
            <DataTrigger Binding="{Binding Path=selectedAccount}"
                         Value="Color Correct">
                 <Setter Property="Visibility" Value="Collapsed"/>
             </DataTrigger>
         </Style.Triggers>
      </Style>
   </Label.Style>
</Label>

在旁注中,您应该使用Collapsed代替Hidden来设置控件的可见性,以防您不希望标签占用大小,即使它在GUI上不可见。阅读更多相关信息here