リストビューのアイテムをタップして別のビューを開こうとしています。 私はTapGestureRegonizer
を追加しようとしましたが、グリッドなどでViewCell
を追加することさえできました。これらのどれもうまくいかないようです。私はラベルにタップジェスチャーを追加したが、それは動作するように見えたが、同じものはリストビュー項目では機能しない。これはリストビューのようなものにとっては単純な問題のように思えますが、このための機能は組み込まれていないようです。リストビューアイテムのジェスチャーをタップ
XAML:背後
<ListView x:Name="dataList"
ItemsSource="{Binding routeLabels}"
HasUnevenRows="True"
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="3">
</ListView>
コード:
var listviewgesture = new TapGestureRecognizer();
listviewgesture.SetBinding(TapGestureRecognizer.CommandProperty,"LoadRoutePage");
dataList.GestureRecognizers.Add(listviewgesture);
ビューモデル:
public ICommand LoadRoutePage { get; protected set; }
public DriverDashboardViewModel(INavigation navigation,MessagDatabase database)
{
this._database = database;
this.Navigation = navigation;
this.LoadNotifications = new Command(async() => await OpenNotificationsPage());
this.LoadRoutePage = new Command(async() => await OpenRoutePage());
}
public async Task OpenRoutePage()
{
await Navigation.PushAsync(new RoutePageView());
}
だけLoadNotifications
方法は、ページを開くに仕事をして明確にすることが、 LoadRoutePage
はありません。だから私は、ビューとビューモデルの間にある程度のコミュニケーションがあることを知っています。
は、私はあなたに感謝し、これらを見て、あなたが知っているだろう。 – user3355961
オプション1ではRoute _selectedItemというプロパティがありますが、そのタイプはどのようなものですか? Im sure not – user3355961
これはListViewにバインドされているアイテムの種類です。コードがルートを含むListViewを参照するので、ListViewにバインドされたアイテムはRouteオブジェクトであると仮定しました。たとえば、文字列のリストは 'string'に変更されます。 –