首页 文章

Xamarin.Forms - 在Listview单元格中绑定多个按钮单击?

提问于
浏览
0

我想显示一个项目列表,每个项目包含几个按钮和其他可点击的元素 . 问题是,默认情况下,Listview中的每个项都是可点击的 . 如何禁用它,并将可执行事件绑定到Listview中的元素?

2 回答

  • 1

    您只需创建一个自定义视图单元格:

    public class MyCell : ViewCell
    {
        public MyCell ()
        {
            var button1 = new Button {Text = "Button 1"};
            button1.Clicked += (sender1, e1) => {
               // Action for button 1
            };
            var button2 = new Button {Text = "Button 2"};
            button2.Clicked += (sender, e) => {
              // Action for Button 2
            };
            View = new StackLayout
            {
                Orientation = StackOrientation.Horizontal,
                Children = {
                     button1,
                     button2,
                }
            };
            View.GestureRecognizers.Add(new TapGestureRecognizer());
        }
    }
    

    最后一个TapGestureRecognizer是为了避免触摸的选择(和Android显示) .

    并将其集成到ListView中

    public DemoPage ()
    {
        var listView = new ListView
        {
            ItemsSource = new[] {"cell 1", "cell 2", "cell 3", "cell 4"},
            ItemTemplate = new DataTemplate(typeof (MyCell))
        };
        Content = listView;
    }
    

    您还可以将按钮单击绑定到命令

  • 0

    如果您使用的是实际的Button元素,则不必执行任何特殊操作 . 每个Button都会响应它自己的Clicked事件 . 行的Tapped事件应该仅针对按钮元素之外的区域触发 .

相关问题