Xamarin Forms TapGestureRecognizer ile Command kullanmak, TapGestureRecognizer Command Çalışmama Sorunu ve Çözümü

Categories XamarinPosted on

Merhabalar, bu yazımda Xamarin Forms üzerinde TapGestureRecognizer ve Command kullanımından bahsetmek istiyorum. Command nesnesi daha çok Xamarin Forms ile MVVM tasarım deseni kullanılırken kullanılan bir nesnedir(?).

Xamarin Forms MVVM kullanırken Xaml tarafında Binding işlemleri yaparız. Bu binding işlemleri daha çok veri bağlama şeklinde olsa da bazı durumlarda Command nesnelerini de bağlamak gerekebilir. Örneğin bir Grid komponentine dokunulduğunda harekete geçen bir Command’a ihtiyacımız olabilir.

Xamarin Forms Command tanımlaması aşağıdaki gibi yapılabilir.


public Command ListViewTappedCommand { get; set; }

<Grid>
    <Grid.GestureRecognizers>
        <TapGestureRecognizer Command="{Binding ListViewTappedCommand}" />
    </Grid.GestureRecognizers>
</Grid>

Yukarıdaki kullanımda TapGestureRecognizer ile Command bir arada kullanılmıştır. Görünüşte her hangi bir sorun olmasada grid komponentine dokunulduğunda ListViewTappedCommand çalışmayacaktır.

Sorunun çözümü ise oldukça basit ;


// Aşağıdaki gibi olan Command tanımlamasını değiştirmemiz gerekmektedir.
public Command ListViewTappedCommand { get; set; }

// Command yerine ICommand tipinde Command tanımlamamız yeterlidir.
public ICommand ListViewTappedCommand { get; set; }

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.