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

  • failblog

    failblog

    17 HAZİRAN 2008
  • kylediablo

    kylediablo

    8 Ocak 2007
  • TomOdellVEVO

    TomOdellVEVO

    29 Mayıs 2012