2016-04-25 47 views
0

我想顯示一個項目列表,每個項目包含幾個按鈕和其他可點擊元素。問題在於,默認情況下,Listview中的每個項目都是可以點擊的。我該如何禁用它,並將可定製事件綁定到Listview中的元素?Xamarin.Forms - 在ListView Cell中綁定多個按鈕點擊?

+0

據我所知,列表視圖會才反應過來,以使不上的細胞內的元素水龍頭處理水龍頭自己。至少我是這樣實現的。 – germi

+0

喜歡多選? –

回答

0

如果你使用的是實際的Button元素,你不應該做任何特殊的事情。每個按鈕都會響應它自己的點擊事件。該行的Tapped事件只應觸發按鈕元素外部的區域。

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; 
} 

您也可以綁定按鈕,點擊即可命令