SORU
28 EYLÜL 2008, Pazar


Değiştir seçili Liste öğesi için WPF DataTemplate

Bir Liste öğesi seçili olup olmamasına bağlı olarak ürünlerinin DataTemplate (seçildiğinde farklı/daha fazla bilgi görüntüleme) değiştirmem gerekiyor.

Anlamıyorum bir GotFocus/LostFocus olayı en üstteki elemanı DataTemplate (bir StackPanel) tıkladıktan sonra Liste öğesi soru (yalnızca sekme) ve benim fikrim.

Şimdiden teşekkürler.

CEVAP
28 EYLÜL 2008, Pazar


Bunu yapmanın en kolay yolu" ve "" özelliği. ItemTemplate "İtemContainerStyle için bir şablon sunmaktır 2 Veri şablonları oluşturmak aşağıda kodu: bir "" ve "" Birleşik Devletleri. seçilen biri seçilmemiş Ben o "" gerçek "" öğeyi içerir. ListBoxİtem. İtemContainerStyle için bir şablon oluşturma Varsayılan "" "Seçilmemiş" devlet, "" özelliği true. İsSelected zaman şablon değiştiren bir tetikleme kaynağı sonra ContentTemplate kurdum (Not: "İtemsSource" kod özellik dizeler listesine arkasında basitlik için) . ayarı ben

<Window.Resources>

<DataTemplate x:Key="ItemTemplate">
    <TextBlock Text="{Binding}" Foreground="Red" />
</DataTemplate>

<DataTemplate x:Key="SelectedTemplate">
    <TextBlock Text="{Binding}" Foreground="White" />
</DataTemplate>

<Style TargetType="{x:Type ListBoxItem}" x:Key="ContainerStyle">
    <Setter Property="ContentTemplate" Value="{StaticResource ItemTemplate}" />
    <Style.Triggers>
        <Trigger Property="IsSelected" Value="True">
            <Setter Property="ContentTemplate" Value="{StaticResource SelectedTemplate}" />
        </Trigger>
    </Style.Triggers>
</Style>

</Window.Resources>
<ListBox x:Name="lstItems" ItemContainerStyle="{StaticResource ContainerStyle}" />

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Machinima

    Machinima

    17 Ocak 2006
  • SavageLuxxxGaming - Daily NBA 2K15 & NBA Live 15 Enjoy And Subscribe!

    SavageLuxxxG

    11 Ocak 2013
  • SomeOne Pro

    SomeOne Pro

    25 EKİM 2013