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

  • ecf150king

    ecf150king

    20 Ocak 2006
  • Fubar Protocol

    Fubar Protoc

    21 AĞUSTOS 2010
  • Khan Academy

    Khan Academy

    17 Kasım 2006