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

  • apenney888

    apenney888

    27 EKİM 2010
  • guillaume2111's channel

    guillaume211

    19 Kasım 2006
  • Peyton

    Peyton

    28 Aralık 2008