使用DataTemplate检测在ListView中单击了哪个项目

时间:2015-07-27 10:41:23

标签: listview xamarin datatemplate xamarin.forms

我有一个带有简单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;。

如何获取点击的项目?

1 个答案:

答案 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
}