Listview-Element angetippt in xamarin.Formen

Ich versuche, developp eine App in Xamarin.Forms und XAML, und ich brauche, um zu erfassen ein Ereignis, wenn ich Tippen Sie auf LV.
Was ich will, die app zu tun ist, ändern Sie die Farbe der Zelle (oder ein StackLayout in der Zelle), wenn der Benutzer Tippen Sie auf das Element, auf einer Liste.
Ich bin zu versuchen, die OnItemTapped-Eigenschaft der listview, aber es passiert nichts, wenn ich drücken Sie das Element.
Mein code ist ganz einfach:

Modell: Produkt-mit 2 propeties, name und Farbe.

public class Product: INotifyPropertyChanged
    {
        #region INotifyPropertyChanged implementation

        public event PropertyChangedEventHandler PropertyChanged;

        #endregion

        public Product ()
        {
        }

        public string Name { get; set; }
        public bool Buy { get; set; }
        public  Color micolor { get; set; }

        //Método para actualizar los cambios
        protected virtual void OnPropertyChanged (string propertyName)
        {
            if (PropertyChanged == null)
                return;

            PropertyChanged (this, new PropertyChangedEventArgs (propertyName));
        }
    }

XAML: Nur eine Liste mit zwei Bindungen: die Namen in einem label, und die Farbe in der SL

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="pruebalv.MyPage1">
    <ContentPage.Content>
     <ListView  x:Name="listView"
     ItemTapped="OmItemTapped"
     >

            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <StackLayout 
                        Orientation="Vertical"
                        BackgroundColor ="{Binding micolor}">
                                <Label Text="{Binding Name}"/>
                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </ContentPage.Content>
</ContentPage>

Hinter .cs-code: erstelle ich die Produkte (es ist nur ein Beispiel) und zu implementieren, die auf einen Gegenstand geklopft. Wenn das Element angetippt, ich will die Farbe ändern, die Eigenschaft des Elements gedrückt.

public void OmItemTapped (object o, ItemTappedEventArgs e)
        {
            var dataItem = e.Item as Product;
            dataItem.micolor  = Color.Green;
            dataItem.Name  = "Tapped!!";

        }

Dem Ergebnis, das ich bekomme, wenn ich eine Liste erstellen, ist, dass nichts passiert, wenn ich Tippen Sie auf ein Element.

Tun, bin ich etwas fehlt? So wie ich das verstanden hab mit den tutorials, nur mit der "itemtapped" roperty der ListView und der InotifyProperty... auf die Produkte, würde ich die Ergebnisse sehen. Ist es richtig?
Danke!

InformationsquelleAutor Pablo Pardo | 2016-03-14
Schreibe einen Kommentar