我有一个带有简单DataTemplate的ListView - 一个图像和一个文本。
List<MenuItem> Items = new List<MenuItem> {
new MenuItem ("TRADE","menuTradeIconBig.png"),
new MenuItem ("PROFILE","menuProfileIconBig.png"),
};
var listView = new ListView ();
var viewTemplate = new DataTemplate(typeof(MenuCell)); //MenuCell contains a grid
listView.ItemTemplate = viewTemplate;
listView.ItemsSource = Items;
如果ListView填充了字符串,我可以轻松地执行此操作:
listView.ItemTapped += (sender, e) =>
{
MenuHandler(e.Item.ToString()); //My function to process item clicks
};
但是现在,当我使用它时,转换为ToString()的响应是&#34; MyProjectName.MenuItem&#34;。
如何获取点击的项目?
答案 0 :(得分:3)
我明白了:
listView.ItemTapped += (sender, e) =>
{
MenuHandler((MenuItem)e.Item);
};
public void MenuHandler(MenuItem item)
{
MenuItem selected = item;
//do whatever you want with the object
}