在WPF应用程序中,我已将DataTemplate正确绑定到XML节点,如下所示:
<answer answer="Tree", correct="false" score="10" />
在我的应用程序中,我有一个带有答案的TextBlock。首先,我希望它不可见,但是当XML文件中的正确属性变为“true”时,它必须变为可见。
我的DataTemplate正确连接,因为其他一切正常。例如,如果我更改XML文件中的answer属性(仅用于测试),它将在我的WPF视图中更改。但我在能见度方面遇到了麻烦。这是我的XAML:
<TextBlock Text="{Binding XPath=@answer}" Visibility="Hidden">
<TextBlock.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding XPath=@correct}" Value="true">
<Setter Property="TextBlock.Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
我猜测DataTrigger中的数据绑定无法正常工作。任何人都有线索?
答案 0 :(得分:2)
我遇到了与数据绑定ToggleButtons相同的问题。尝试删除Visibility =“False”并将其替换为处理不正确情况的另一个DataTrigger。
答案 1 :(得分:1)
我认为问题是Visibility属性是硬编码的。尝试在样式中设置可见性:
<TextBlock Text="{Binding XPath=@answer}">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="Visibility" Value="Hidden"/>
<Style.Triggers>
<DataTrigger Binding="{Binding XPath=@correct}" Value="true">
<Setter Property="TextBlock.Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
答案 2 :(得分:1)
当然,如果你给出一个特定的其他案例而不仅仅是假,它就有效。在我的例子中,它是{x:Null}和值。所以当它的bind值存在时,它将是true,TextBlock.Visibilty将使用setters值设置,并且当绑定路径内部没有任何值时,即在我的情况下为null,它只是{x:Null} :)