Ich versuche, meiner UWP-App ein MenuFlyout zur Unterstützung eines Controllers hinzuzufügen. Das Problem ist, dass ich nicht herausfinden kann, wie man bestimmt, welches ListViewItem das Ereignis tatsächlich ausgelöst hat.Wie verwenden Sie das ContextFlyout mit einem ListView?
Codebehind
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
this.DataContext = new List<String>{ "Item 1", "Item 2", "Item 3"};
}
private void ChoiceA_Click(object sender, RoutedEventArgs e)
{
// What was clicked?
}
}
XAML
<ListView ItemsSource="{Binding}">
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="ContextFlyout">
<Setter.Value>
<MenuFlyout>
<MenuFlyoutItem Text="Choice A" Click="ChoiceA_Click" />
<MenuFlyoutItem Text="Choice B" />
</MenuFlyout>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
</ListView>
Das funktioniert für einen rechten Tipp, aber die Menüschaltfläche auf dem Xbox-Controller löst das Ereignis nicht aus. – Johnny
Anhand Ihres Beispiels habe ich herausgefunden, dass Sie das fokussierte Objekt mit dem FocusManager abrufen können. Auf dem GotFocus-Ereignis für die Seite private void Page_GotFocus (object sender, RoutedEventArgs e) { if (FocusManager.GetFocusedElement() als ListViewItem! = Null) { // Do Zeug } } – Johnny