繁体   English   中英

如何在网格视图中确定单击的项目

[英]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>

其中填充了具有名为 id 的 int32_t 字段的类型FavoriteBinder

然后单击 function,如下所示:

void FavoritesPage::favorite_clicked(
    Windows::Foundation::IInspectable const& sender, 
    Windows::UI::Xaml::RoutedEventArgs const& args) 
{
}

如何获取在 favorite_clicked function 中点击的项目的 id?

在 favorite_clicked 事件中,您可以通过e.ClickedItem()方法获取您点击的 FavoriteBinder class,并使用.as方法将 object 转换为 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();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM