這可能是一個醜陋的方式,沒有代碼隱藏做到這一點,但你可以做的是爲您的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