gpt4 book ai didi

c# - 如何将 ContextFlyout 与 ListView 一起使用?

转载 作者:太空宇宙 更新时间:2023-11-03 12:41:45 25 4
gpt4 key购买 nike

我正在尝试将 MenuFlyout 添加到我的 UWP 应用程序以支持 Controller 。问题是我不知道如何确定哪个 ListViewItem 实际触发了事件。

代码隐藏

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>

最佳答案

我刚刚用本地机器和移动模拟器测试了你的代码,你的 MenuFlyout 只能在 PC 上通过右键点击 ListView 来显示,这是一个解决方案,你可以在ListViewRightTapped事件中找到OriginalSource,然后得到这个OriginalSource的DataContext 例如这样:

private FrameworkElement originalSource;
private void ChoiceA_Click(object sender, RoutedEventArgs e)
{
var itemdatacontext = originalSource.DataContext;
}

private void ListView_RightTapped(object sender, RightTappedRoutedEventArgs e)
{
originalSource = (FrameworkElement)e.OriginalSource;
}

关于c# - 如何将 ContextFlyout 与 ListView 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38768205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com