2016-07-22 5 views
1

Ich habe ListView und ich DataTemplate zugewiesen. Jetzt habe ich einige Steuerelemente wie Button, Bilder und Labels. Jetzt möchte ich einige Aktionen auf Click-Ereignis dieser Steuerelemente.So implementieren Sie die Methode des Unterelements DataTemplate von ListView in Xamarin.Forms

ist mein Listview wie this-

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

My Datatemplate wie this- Meine Frage ist

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

Nun, ich tippen wollen Geste für Bild tippen und Schaltfläche Click-Ereignis für Tastensteuerung implementieren . Wie macht man das?

+0

Sie könnten mit 'ContextActions' betrachten in Ihrem' DataTemplate', wenn es sinnvoll für Ihre App macht, da Das ist eine sehr häufige Interaktion und funktioniert auf jeder Plattform auf native Weise. "ContextActions" kann auch viel einfacher mit einem kleinen Bildschirm verglichen mit dem Versuch, auf eine Schaltfläche in einer anklickbaren 'ListView'-Zeile zu klicken, arbeiten. Schau dir 'ContextActions' [hier] an (https://developer.xamarin.com/guides/xamarin-forms/user-interface/listview/interactivity/#Context_Actions) – hvaughan3

Antwort

0

Click-Handler für eine Schaltfläche

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

fügen Sie eine Gestenerkenner auf ein Bild

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

img.GestureRecognizers.Add(tapped); 
Verwandte Themen