У меня есть выпадающей прикрепленную к ListView пункта, упрощена следующим образом:MenuFlyoutItem Получить Родитель
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel IsHoldingEnabled="True" Holding="ListView_Holding" >
<FlyoutBase.AttachedFlyout>
<MenuFlyout>
<MenuFlyoutItem Text="remove" Click="MenuFlyoutItem_Click" />
</MenuFlyout>
</FlyoutBase.AttachedFlyout>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
private void ListView_Holding(object sender, HoldingRoutedEventArgs e)
{
FrameworkElement senderElement = sender as FrameworkElement;
FlyoutBase flyoutBase = FlyoutBase.GetAttachedFlyout(senderElement);
flyoutBase.ShowAt(senderElement);
}
private void MenuFlyoutItem_Click(object sender, RoutedEventArgs e)
{
}
Как получить элемент ListView изнутри MenuFlyoutItem_Click
, что MenuFlyout является «прилагается» к? Я пробовал несколько вещей, но не смог заставить его работать.
При необходимости я могу отправить больше кода.
Спасибо за ответ, полезный материал, который я не знал. Поскольку я хочу выполнить код, чтобы удалить элемент из ListView, когда пользователь нажимает «удалить» на выпадающем меню, а не на длительное нажатие самого элемента, как мне это сделать изнутри «MenuFlyoutItem_Click» ? – blawford
@blawford Datacontext - это сам элемент (не ListViewItem, а точный контекстный элемент). Если вы привязываете ListView.ItemsSource к ObservableCollection, просто удаление этого datacontext из ListView должно немедленно отразиться в ListView! –