Ich habe eine ListBox, die ein Menü anzeigt, in dem der Benutzer in der Anwendung navigieren kann. Wenn Sie ein ListBox-Element auswählen, wird das entsprechende UserControl rechts neben dem Menü angezeigt. Einer der Menüpunkte (ABOUT) sollte jedoch nicht fokussierbar sein, sondern nur eine Aufgabe ausführen (Öffnen eines Popup-Fensters). Das ausgewählte Element sollte so bleiben, wie es zuvor war.Einen Mausklick auf ein ListBox-Objekt erkennen, wobei Focusable auf False gesetzt ist
Folgende Vorschläge in this link Ich habe versucht, die Focusable-Eigenschaft des relevanten ListBox-Elements auf eine boolesche Eigenschaft in der VM zu binden. Aber dann bekomme ich keine Updates für die SelectedIndex-Eigenschaft.
Gibt es einen Weg um dies zu umgehen?
XAML:
<ListBox Grid.Row="0"
ItemsSource="{Binding MenuButtonInfoList}"
SelectedIndex="{Binding SelectedMainMenuIndex, Mode=TwoWay}"
Background="Transparent" BorderBrush="Transparent" Padding="0"
VerticalContentAlignment="Center">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Setter Property="Focusable" Value="{Binding Path=Focusable}" />
</Style>
</ListBox.ItemContainerStyle>
<ListBox.ItemTemplate>
<DataTemplate>
<Border Style="{StaticResource MenuButtonBorder}">
<StackPanel Orientation="Horizontal" Height="Auto">
<Image Source="{Binding ImageFilePath}"
Style="{StaticResource MenuButtonImage}" />
<Label Content="{Binding Label}"
Style="{StaticResource MenuButtonLabel}" />
</StackPanel>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Sie [ 'IsHitTestVisible verwenden könnte 'von MSDN] (https://msdn.microsoft.com/en-us/library/system.windows.uielement.ishittestvisible (v = vs.110) .aspx) – XAMlMAX
Warum machst du Wan t/erwarte, dass die SelectedIndex-Eigenschaft aktualisiert wird, wenn Sie das Element nicht auswählen können? – mm8
Ich möchte den ListBox-Eintrag auswählen können, aber nicht, dass der Eintrag den Fokus haben soll. Mit den anderen Elementen werden sie eine Änderung im MainWindow-Layout verursachen, aber das ABOUT-Element öffnet ein Popup-Fenster. Daher macht es keinen Sinn, dass das ÜBER-Objekt den Fokus hat. – Oystein