Привязка команды не работает для ListView с Itemsource - PullRequest
1 голос
/ 21 мая 2019

Я пытаюсь добавить Clickable 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>

1 Ответ

0 голосов
/ 22 мая 2019

Получил простое решение ...

XAML:

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

ViewModel:

    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;

            }
...