从 SelectionChanged 事件获取 Item 在 GridView 中的位置
Get position of Item in GridView from SelectionChanged event
我有一个 GridView,其中 DataTemplate
类似于 W8.1 Grid App Template 中包含的默认视图。它是从 CollectionViewSource 填充(通过绑定)的。
GridView
的 SelectionMode
是 Single
,我已经订阅了 GridView
的 SelectionChanged
活动。在此事件中,我可以使用此代码获取当前选择的对象 -
private void itemGridView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ItemCanvas icDelete = ((GridView)sender).SelectedItem as ItemCanvas;
string sName = icDelete.Name;
}
如何访问此项目的 DataTemplate
,即如何访问此项目的可视位置以便在 GridView 中显示此项目所在的弹出窗口?
我已经使用 Flyout 完成了,我的代码:
我的XAML:
...data template..
<FlyoutBase.AttachedFlyout >
<Flyout>
<StackPanel>
<MenuFlyoutItem x:Name="flag_" >
<MenuFlyoutItem x:Name="hide_" >
<TextBlock Width="200" x:Name="details" Text="{Binding title}" />
</StackPanel>
</Flyout>
</FlyoutBase.AttachedFlyout>
我的 C#:
private void Border_RightTapped(object sender, RightTappedRoutedEventArgs e)
{
Border brdr = sender as Border;
FlyoutBase.ShowAttachedFlyout(brdr);
}
而且效果很好!
我有一个 GridView,其中 DataTemplate
类似于 W8.1 Grid App Template 中包含的默认视图。它是从 CollectionViewSource 填充(通过绑定)的。
GridView
的 SelectionMode
是 Single
,我已经订阅了 GridView
的 SelectionChanged
活动。在此事件中,我可以使用此代码获取当前选择的对象 -
private void itemGridView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ItemCanvas icDelete = ((GridView)sender).SelectedItem as ItemCanvas;
string sName = icDelete.Name;
}
如何访问此项目的 DataTemplate
,即如何访问此项目的可视位置以便在 GridView 中显示此项目所在的弹出窗口?
我已经使用 Flyout 完成了,我的代码:
我的XAML:
...data template..
<FlyoutBase.AttachedFlyout >
<Flyout>
<StackPanel>
<MenuFlyoutItem x:Name="flag_" >
<MenuFlyoutItem x:Name="hide_" >
<TextBlock Width="200" x:Name="details" Text="{Binding title}" />
</StackPanel>
</Flyout>
</FlyoutBase.AttachedFlyout>
我的 C#:
private void Border_RightTapped(object sender, RightTappedRoutedEventArgs e)
{
Border brdr = sender as Border;
FlyoutBase.ShowAttachedFlyout(brdr);
}
而且效果很好!