首页 文章

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

提问于
浏览
0

我有一个带有简单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()的响应是“MyProjectName.MenuItem” .

如何获得点击的项目?

1 回答

  • 3

    我想到了:

    listView.ItemTapped += (sender, e) => 
    {
            MenuHandler((MenuItem)e.Item);
    };
    
    public void MenuHandler(MenuItem item) 
    {
                MenuItem selected = item;
    //do whatever you want with the object
    }
    

相关问题