如何确定网格视图中单击的项目
How to determine the clicked item in a grid view
给定一个GridView
,例如
<GridView IsItemClickEnabled="True" ItemClick="favorite_clicked" ItemsSource="{x:Bind MainViewModel.FavoriteBinders}" Grid.Column="1">
<GridView.ItemTemplate>
<DataTemplate x:DataType="local:FavoriteBinder">
<StackPanel AccessKey="{x:Bind CedictId, Mode=OneWay}" Width="200" Margin="20">
<TextBlock Text="{x:Bind Simplified, Mode=OneWay}" FontWeight="Bold"
/>
<TextBlock Text="{x:Bind Pinyin, Mode=OneWay}" TextWrapping="NoWrap"
/>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid MaximumRowsOrColumns="7"/>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
其中填充了一个类型FavoriteBinder
,该类型具有一个名为 id 的int32_t字段。
还有一个点击功能,看起来像:
void FavoritesPage::favorite_clicked(
Windows::Foundation::IInspectable const& sender,
Windows::UI::Xaml::RoutedEventArgs const& args)
{
}
如何获取在favorite_clicked函数中点击的项目的 ID?
favorite_clicked事件中,您可以通过e.ClickedItem((方法获取单击的FavoriteBinder类,并使用.as方法将对象转换为FavoriteBinder类型。
void FavoritesPage::favorite_clicked(IInspectable const& sender, winrt::Windows::UI::Xaml::Controls::ItemClickEventArgs const& e)
{
WinrtText::FavoriteBinder clickVM = e.ClickedItem().as< WinrtText::FavoriteBinder >();
int32_t clickId = clickVM.CedictId();
}
相关文章:
- QTreeView幻灯片多选后无法使用单击选择
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- QML TableView 使用 QtQuick.Controls 2 单击行
- ImGui 在单击按钮后冻结
- 有没有办法区分Qt小部件是通过鼠标单击还是通过按表键获得焦点?
- 我想使用此代码单击某个特定窗口,但它无法正常工作
- 如何确定网格视图中单击的项目
- 如何通过 CTRL+单击在 QTableWidget 中禁用多个项目选择
- 从qlistwidget和qtableWidget获得单击项目
- QListWidget 项目单击和项目双击 - 如果双击,则阻止单击
- 将项目插入桌面右键单击菜单从外壳扩展
- 如果我单击对话框中的项目(ListBox、CheckBox等),OnLButtonDown()不会被激发,但如果我单击背
- Visual Studio 2015 Community C++ 新建项目窗口在单击“确定”后消失
- 鼠标按下QComboBox的插槽-如果用户单击组合框,则动态填充项目
- 如何使“QTableWidget”项目仅在单击第一列时才被选中
- Qt -事件监听器的树小部件项目单击
- 如何通过鼠标单击在QGraphicsView中选择位置并添加项目
- 当我在win32项目c++应用程序中单击菜单项时,如何编写代码来加载一个特殊的对话框?
- QListWidget:项目单击上的事件
- 右键单击QTreeView项目