将不适用于 ListView 的命令与 Itemsource 绑定

Binding a Command not Working for ListView with Itemsource

我正在尝试添加可点击的 ListView-Cell,但我可能与绑定发生冲突。

每个单元格都应该像一个导航到包含给定对象的新页面的按钮。 我已经尝试过 "TapGestureRecognizer".


<ListView x:Name="ListView" HasUnevenRows="True" SelectionMode="Single" >


                    <ListView.ItemsSource>
                    <x:Array Type="{x:Type clients:MinRepresentation}">
                        <clients:MinRepresentation Id="123456789" PlannedStartTime="01-01-2019" PlannedEndTime="01-12-2019"  />
                        <clients:MinRepresentation Id="555555555" PlannedStartTime="12-12-2019" PlannedEndTime="12-12-2019"  />
                    </x:Array>
                </ListView.ItemsSource>

                <ListView.ItemTemplate>
                    <DataTemplate>
                            <ViewCell>
                                <Grid Padding="5">
                                    <Grid.GestureRecognizers>
                                        <TapGestureRecognizer Command="{Binding OrderDetailsCommand}"/>
                                    </Grid.GestureRecognizers>
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="Auto" />
                                        <RowDefinition Height="Auto" />
                                        <RowDefinition Height="Auto" />
                                        <RowDefinition Height="Auto" />
                                        <RowDefinition Height="Auto" />
                                    </Grid.RowDefinitions>
                                <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"  />
                                        <ColumnDefinition Width="Auto" />
                                        <ColumnDefinition Width="*" />
                                    </Grid.ColumnDefinitions>
                                         [Cell-Template]
                                    </Grid>
                            </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

找到了简单的解决方案...

XAML:

<ListView HasUnevenRows="True" SelectionMode="Single" ItemsSource="{Binding VisibleOrders}" ItemSelected="OnListViewItemSelected" ItemTapped="OnListViewItemTapped"/>

视图模型:

    public IList<MinRepresentation> VisibleOrders { get; private set; }

    void OnListViewItemSelected(object sender, SelectedItemChangedEventArgs e)
            {
                MinRepresentation selectedItem = e.SelectedItem as MinRepresentation;
            }

            void OnListViewItemTapped(object sender, ItemTappedEventArgs e)
            {
                MinRepresentation tappedItem = e.Item as MinRepresentation;

            }