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

  • Andytokkallos

    Andytokkallo

    27 Kasım 2007
  • HuskyStarcraft

    HuskyStarcra

    4 HAZİRAN 2009
  • FusioNGamiing

    FusioNGamiin

    10 Temmuz 2007