使用MVVM模式以及ICommand和CommandParameter属性来解决此问题,具体示例代码如下:
public class MainPageViewModel
{
public ObservableCollection Categories { get; set; }
public MainPageViewModel()
{
// 初始化分类和子项的ObservableCollection
Categories = new ObservableCollection();
// 添加分类和子项
var category1 = new Category { Name = "Category 1" };
category1.Items.Add("Item 1");
category1.Items.Add("Item 2");
category1.Items.Add("Item 3");
var category2 = new Category { Name = "Category 2" };
category2.Items.Add("Item 4");
category2.Items.Add("Item 5");
category2.Items.Add("Item 6");
Categories.Add(category1);
Categories.Add(category2);
}
// ICommand绑定的方法
public void ItemTapped(object obj)
{
// obj 为对象数组,其中第一个为Category对象,第二个为当前子项的名称
var category = obj[0] as Category;
var item = obj[1] as string;
// 处理子项被点击后的操作
Debug.WriteLine($"Tap item: {item} in category: {category.Name}");
}
}