c# - 如何检查 ListView 中 ListItem 的哪个字符串资源被单击?
问题描述
有没有办法检查 ListView 项目点击的字符串资源而不是 ListView 的索引(这通常在教程中演示)?例如,我有ListView
3 个项目:“项目 A”、“项目 B”和“项目 C”。如果点击项目的字符串资源ListView
是“项目A”,做点什么。
主页类
public sealed partial class MainPage : Page
{
private List<ListItemMain> mainItems;
public MainPage()
{
this.InitializeComponent();
gridItemMains = MainItemManger.GetGridItems();
}
private void ListView_ItemClick(object sender, ItemClickEventArgs e)
{
}
}
物品类别
public class ListItem
{
public string Name { get; set; }
}
public class BookManger
{
public static List<Book> GetListItems()
{
var resourceLoader = Windows.ApplicationModel.Resources.ResourceLoader.GetForCurrentView();
var items = new List<Book>
{
new Book { Name = resourceLoader.GetString("ItemA") },
new Book { Name = resourceLoader.GetString("ItemB") },
new Book { Name = resourceLoader.GetString("ItemC") }
};
return items;
}
}
XAML
<Page
x:Class="My_App.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:controls="using:Microsoft.Toolkit.Uwp.UI.Controls"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:data="using:My_App.Models"
mc:Ignorable="d">
<ListView ItemsSource="{x:Bind listItems}" ItemClick="ListView_ItemClick">
<ListView.ItemTemplate>
<DataTemplate x:DataType="data:ListItem">
<StackPanel>
<TextBlock Text="{Binding Book}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Page>
解决方案
您需要将IsItemClickEnabled
属性设置为 true 才能ItemClick
从ListView
.
有关ItemClick 事件,请参阅文档页面。
这是更新后的 XAML 的样子:
<ListView ItemsSource="{x:Bind listItems}" ItemClick="ListView_ItemClick" IsItemClickEnabled="True">
<ListView.ItemTemplate>
<DataTemplate x:DataType="data:ListItem">
<StackPanel>
<TextBlock Text="{Binding Book}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
和事件处理程序代码:
void ListView_ItemClick(object sender, ItemClickEventArgs e)
{
// TODO: Add your code by accessing e.ClickedItem here
}
推荐阅读
- javascript - 数组不能用作引用类型,数组是否属于 JavaScript 中的引用数据类型
- python - 多层次的 Groupby 和 Sum
- sed - 删除模式前的“\”
- html - 如何在没有循环的情况下在odoo报告上添加静态字段?
- amazon-cloudformation - 使用 Code Pipeline 通过 NestedStack 部署 Cloudformation
- r - 有条件地填充空单元格
- python - 将函数应用于组中的第一个元素,然后重新合并
- ssas - 获取一组所有成员以及在 MDX 中具有成员属性的任何后代
- python - 对一列执行累积总和,但如果总和在 Pandas 中变为负数,则重置为 0
- ruby-on-rails - 试图检查是否有具有特定电子邮件地址的用户。获取:nil:NilClass 的未定义方法“[]”