繁体   English   中英

如何在Xamarin.Forms中实现ListView的DataTemplate子项的方法

[英]How to implement method of sub item of DataTemplate of ListView in Xamarin.Forms

我有ListView,并为其分配了DataTemplate。 现在我有了一些控件,如按钮,图像和标签。 现在,我希望对该控件的click事件执行一些操作。

我的ListView是这样的-

listof_ingredients_and_lifestyleDiets = new ListView
{
 BackgroundColor = Color.FromHex ("#CDBA96"),
 ItemTemplate = preferenceTableCell,
 SeparatorColor =Color.FromHex("#CDBA96"),
 RowHeight=40,
 HeightRequest=200
};

我的DataTemplate就像这样-

    DataTemplate preferenceTableCell = new DataTemplate (() => {
                var itemName = new Label {              
                    HorizontalOptions = LayoutOptions.Center,
                    VerticalOptions = LayoutOptions.Center,
                    WidthRequest=80,
                    FontSize=14,
                    TextColor=ColorResources.TextColor,
                };
                itemName.SetBinding (Label.TextProperty, "Name");


                var radiobtn_allergen = new CircleImage {
                    BorderColor = ColorResources.commonButtonBackgroundColor,
                    HeightRequest = 25,
                    WidthRequest = 25,
                    Aspect = Aspect.AspectFill,
                    HorizontalOptions = LayoutOptions.Center,
                    VerticalOptions = LayoutOptions.Center,
                    Source="radio_Check.png"
                };
radiobtn_allergen.SetBinding(CircleImage.IsVisibleProperty,"isExcluded");

                var radiobtn_preference = new CircleImage {
                    BorderColor = ColorResources.commonButtonBackgroundColor,
                    HeightRequest = 25,
                    WidthRequest = 25,
                    Aspect = Aspect.AspectFill,
                    HorizontalOptions = LayoutOptions.Center,
                    VerticalOptions = LayoutOptions.Center,
                    Source="radio_uncheck.png",
                };radiobtn_preference.SetBinding (CircleImage.IsVisibleProperty, "isExcluded");

                var btnDelete=new Button{
                    Image="deleteBtn.png",
                    HorizontalOptions=LayoutOptions.EndAndExpand,
                    HeightRequest=50,
                    WidthRequest=30
                 };

                StackLayout stacklayout = new StackLayout {
                    Spacing = 60,
                    Orientation = StackOrientation.Horizontal,
                    HorizontalOptions = LayoutOptions.FillAndExpand,
                    Children = { itemName,radiobtn_allergen,radiobtn_preference,btnDelete }
                };
                return new ViewCell { View = stacklayout };
            });

现在我的问题是,我想为图像点击实现点击手势,为按钮控制实现按钮点击事件。 这个怎么做?

单击按钮的处理程序

btnDelete.Clicked += ((sender, args) => {
      // perform actions here
  });

将手势识别器附加到图像

TapGestureRecognizer tapped = new TapGestureRecognizer();
tapped.Tapped += ((o2, e2) =>
    {
        // perform actions here
    });

img.GestureRecognizers.Add(tapped);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM