我是WPF的新手,我试图创建xaml逻辑以基于ViewModel上AllowMiscTitle的值来显示/隐藏控件。 XAML中包含两个领域的标准砖的组合框(“先生”,“太太”,...,“其他”)时,“其他”选择我想要的文本框来显示。
我创建了以下xaml:
<DockPanel Validation.Error="Validation_Error" HorizontalAlignment="Stretch">
<ComboBox ItemsSource="{Binding Path=Titles, Mode=OneTime}"
Text="{Binding Path=Title}"/>
<TextBox x:Name="TxtBxTitle" Margin="5,5" Visibility="Visible">
<TextBox.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=AllowMiscTitle}" Value="false">
<Setter Property="TextBox.Visibility" Value="Hidden"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</DockPanel>
最佳答案
该Trigger
无法正常工作,因为您已在Visibility
中明确设置了TextBox
属性
像这样做:
<TextBox x:Name="TxtBxTitle" Margin="5,5">
<TextBox.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=AllowMiscTitle}" Value="false">
<Setter Property="TextBox.Visibility" Value="Hidden"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
原因是Dependency property value precedence。
关于wpf - WPF显示/隐藏带有触发器的控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17718623/