Xamarinフォーム(AndroidとiOSでテスト済み)にこの問題があります。XamarinフォームとTabGestureRecognizerがコマンドで起動しない
私はこのViewModelに(非常にシンプルな、唯一のコマンド)を使用し、このコードで
using System;
using Xamarin.Forms;
namespace BugTGR
{
public class PageMain : ContentPage
{
public PageMain()
{
PageMainViewModel vm = new PageMainViewModel();
this.BindingContext = vm;
Label label1 = new Label{ Text = "Press with ICommand"};
TapGestureRecognizer tgr = new TapGestureRecognizer();
tgr.BindingContext = vm;
tgr.SetBinding(TapGestureRecognizer.CommandProperty, "Tapped");
label1.GestureRecognizers.Add(tgr);
Label label2 = new Label { Text = "Press with Tapped"};
TapGestureRecognizer tgr1 = new TapGestureRecognizer();
tgr1.Tapped += async (object sender, EventArgs e) => {
await DisplayAlert("Attention", "PRESSED WITH TAPPED", "Ok");
};
label2.GestureRecognizers.Add(tgr1);
Content = new StackLayout
{
Children = {label1, label2}
};
}
}
}
単純なページを持っている
using System;
using System.Windows.Input;
using Xamarin.Forms;
using PropertyChanged;
namespace BugTGR
{
[ImplementPropertyChanged]
public class PageMainViewModel
{
public PageMainViewModel()
{
this.Tapped = new Command(async() =>
{
await Application.Current.MainPage.DisplayAlert("Attention", "Pressed", "Ok");
});
}
public ICommand Tapped { protected get; set;}
}
}
次に、あなたが見ることができますどのように、私はバインドにしてみてくださいコマンドをTapGestureRecognizerに送り、ラベルにTGRを追加しますが、ラベルをクリックしてもコマンドは呼び出されません。
2番目のラベル(label2)に、Tappedイベントを使用して、コマンドをバインドせずに別のTapGestureRecognizerを追加します。これは動作します!
私に間違っていることを教えてくれる人がいますか?
ありがとうございます! アレッサンドロ
まだ問題は表示されません。何がうまくいかず、どのプラットフォームでこれをテストしていますか?また、Xamarin.Formsのバージョンが最新であることを確認してください。 – therealjohn
@therealjohn私はAndroidとiOSでテストしました。私は最後のXFバージョンを使用しています。私は他の研究をします –
私はそれを考え出しましたが、私ができる前に投稿したように見えます。 :) – therealjohn