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