2017-02-18 3 views
1

Я новичок в MVVM, и есть что-то, и я делаю неправильно в своем приложении Xamarin.Forms.Xamarin ICommand не стреляет

Вот что я имею в SessionsPage.xml

<Grid.Children> 
    <Image Source="zero.jpg" Grid.Row="0" Grid.Column="0"> 
    <Image.GestureRecognizers> 
     <TapGestureRecognizer 
      Command="{Binding TapCommand}" 
      CommandParameter="0" /> 
    </Image.GestureRecognizers> 

У меня есть изображение, связанное с командой «TapCommand».

В конструкторе этой точки зрения, я добавил:

tapViewModel = new EasyScrum.Views.TapViewModel(); 

А класс ViewModel является:

public class TapViewModel : INotifyPropertyChanged 
{ 
    int taps = 0; 
    ICommand tapCommand; 

    public event PropertyChangedEventHandler PropertyChanged; 

    public TapViewModel() 
    { 
     // configure the TapCommand with a method 
     tapCommand = new Command(OnTapped); 
    } 

    public ICommand TapCommand 
    { 
     get { return tapCommand; } 
    } 
    void OnTapped(object s) 
    { 
     taps++; 
     Debug.WriteLine("parameter: " + s); 
    } 
    //region INotifyPropertyChanged code omitted 
} 

И это событие не стрельбы, что не так?

ответ

1

Я отвечаю сам.

Моя ошибка заключалась в том, что я должен был назначить

this.BindingContext = новый TapViewModel();

Смежные вопросы