这可能是一个丑陋的方式,没有代码隐藏做到这一点,但你可以做的是为您的ListBoxItem中的模板包括两个的TextBlocks(东西)是这样的:
<Style x:Key="ListBoxItemStyle1" TargetType="ListBoxItem">
<Setter Properties... />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<TextBlock Text="Verified" Visibility={Binding Verified, Converter="{StaticResource BoolToVisibilityConverter}" />
<TextBlock Text="Not Verified" Visibility={Binding Verified, Converter="{StaticResource ReverseBoolToVisibilityConverter}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
那么你将不得不写两个转换器:BoolToVisibilityConverter如果真若假的第一个文本框和ReverseBoolToVisibilityConverter如果为False,并晕倒验证的布尔值更改为可见晕倒验证的布尔值更改为可见如果第二个文本为True块。这样,一个文本块将始终在listboxitem中可见,并且一个文本块将始终处于折叠状态,具体取决于Verified属性的值。
如果你不知道如何做价值转换器,你可以看看HERE。
这没有经过测试,并不是所有你需要的代码,但它应该工作。这假定两个不同的文本块将总是包含相同的文本并且Verified属性是一个布尔属性,否则,你可能想找出另一种方法来做到这一点。
第二个想法,你可以做一个值转换器和一个文本块,并将Verified的值转换为你想要的文本。这会更容易。
<TextBlock Text="{Binding Verified, Converter="{StaticResource VerifiedToTextConverter}" />
人们不应该改变控制模板,这一点,'ItemTemplate'应该更适合... – 2012-02-14 01:01:40
@ H.B。你是正确的先生。那会更好。 – 2012-02-14 02:38:09