C# 列表视图中的MenuFlyout:单击了哪个元素
我有一个带有评论列表的列表视图: 按住注释时显示的弹出菜单在第页中定义。参考资料:C# 列表视图中的MenuFlyout:单击了哪个元素,c#,xaml,winrt-xaml,windows-phone-8.1,C#,Xaml,Winrt Xaml,Windows Phone 8.1,我有一个带有评论列表的列表视图: 按住注释时显示的弹出菜单在第页中定义。参考资料: <Page.Resources> <MenuFlyout x:Name="flyout1" x:Key="FlyoutBase1"> <MenuFlyoutItem x:Name="ReportCommentFlyout" Text="{Binding User, Converter={StaticResou
<Page.Resources>
<MenuFlyout x:Name="flyout1" x:Key="FlyoutBase1">
<MenuFlyoutItem x:Name="ReportCommentFlyout"
Text="{Binding User, Converter={StaticResource ReportOrDeleteComment}}"
Click="ReportCommentFlyout_Click"/>
</MenuFlyout>
</Page.Resources>
但是应用程序崩溃了 您的应用程序崩溃是因为您将e.OriginalSource强制转换为注释,而它不工作是因为它不是那种类型。通常,使用“as”这样做通常更安全 关于你的问题,你试过了吗
var menuFlyoutItem = sender as MenuFlyoutItem;
if (menuFlyoutItem != null)
{
var comment = menuFlyoutItem.DataContext as Comment;
if (comment != null)
{
string CommentId = comment.Id;
}
}
您的应用程序崩溃是因为您将e.OriginalSource强制转换为注释,而它不工作是因为它不是那种类型。通常,使用“as”这样做通常更安全 关于你的问题,你试过了吗
var menuFlyoutItem = sender as MenuFlyoutItem;
if (menuFlyoutItem != null)
{
var comment = menuFlyoutItem.DataContext as Comment;
if (comment != null)
{
string CommentId = comment.Id;
}
}
string CommentId = ((Comment)e.OriginalSource).Id;
var comment = someObject as Comment;
if (comment != null)
{
....
}
var menuFlyoutItem = sender as MenuFlyoutItem;
if (menuFlyoutItem != null)
{
var comment = menuFlyoutItem.DataContext as Comment;
if (comment != null)
{
string CommentId = comment.Id;
}
}