WPF-ListBox-Tasten: wie ändern Sie auf ausgewählte Elemente klicken Sie mit XAML
Ich habe eine Vorlagen -ListBox
:
<ListBox Grid.Row="0" Grid.Column="1" Background="Transparent" BorderThickness="0" x:Name="mainMenu"
ItemsSource="{Binding Source={x:Static local:MenuConfig.MainMenu}, Mode=OneTime}"
IsSynchronizedWithCurrentItem="True">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<EventSetter Event="PreviewMouseUp" Handler="SelectCurrentItem"/>
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Button>
<StackPanel>
<Image Source="{Binding Icon}" MaxHeight="32" MaxWidth="32"/>
<TextBlock Text="{Binding Label}"/>
</StackPanel>
</Button>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Das ausgewählte Element aktualisiert wird manuell mit code behind:
private void SelectCurrentItem(object sender, MouseButtonEventArgs e)
{
ListBoxItem item = (ListBoxItem) sender;
item.IsSelected = true;
}
Gibt es eine Möglichkeit, dies zu tun (update ausgewählte Element auf Schaltfläche klicken) mit XAML nur ?
InformationsquelleAutor Catalin DICU | 2010-02-03
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Regel Stil Ihr
DataTemplate
zu schauen und zu reagieren wie ein button-wenn das der Effekt, den Sie möchten z.B.Können Sie auch wollen, um die
ItemContainerStyle
um die Standardeinstellung zu überschreiben styling für dieSelectedItem
:InformationsquelleAutor Kevin Mills
Den button definiert in Ihrem
DataTemplate
wird das click-Ereignis abfangen, bevor dieListBoxItem
damit umgehen kann. Entfernen Sie dieItemContainerStyle
und dieButton
von IhremDataTemplate
.InformationsquelleAutor Kevin Mills
Einen
ListBox
tracks und wählt das aktuelle Element für Sie, die Sie nicht brauchen, um es in code. entfernen Sie diesedu tust Arbeit, dies erledigt für Sie aus der box.
InformationsquelleAutor Aran Mulholland