Как установить флажок xamarin Forms в виде списка для удаления только отмеченных строк - PullRequest
0 голосов
/ 04 октября 2018

У меня есть представление списка, извлекающее данные из веб-API.Я добавил флажки в каждой строке.Теперь я хочу удалить только отмеченные строки.Как это можно сделать?

Мой файл Xaml:

        <StackLayout VerticalOptions="CenterAndExpand">
            <ListView x:Name="postsListView" ItemSelected="postsListView_ItemSelected" HasUnevenRows="True">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*"/>
                                    <ColumnDefinition Width="3*"/>
                                    <ColumnDefinition Width="3*"/>
                                    <ColumnDefinition Width="3*"/>
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="*"/>
                                    <RowDefinition Height="*"/>
                                </Grid.RowDefinitions>
                                <!--Data From Web Api-->
                                <controls:CheckBox x:Name="checkbox2" x:Uid="{Binding Id}"  Checked="False" Grid.Row="0" Grid.Column="0"/>
                                <Label Grid.Row="0" Grid.Column="1" Text="{Binding Name}"/>
                                <Label Grid.Row="0" Grid.Column="2" Text="{Binding Address}"/>
                                <Label Grid.Row="0" Grid.Column="3" Text="{Binding Telephone}"/>
                            </Grid>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </StackLayout>

Я не могу реализовать слушателей и операции удаления.Мне нужно удалить только выбранные отмеченные строки.MyXaml.cs Файл:

    private String Url = "http://192.168.8.115/NewAPI/api/Employee_Table";
    private HttpClient client = new HttpClient();
    private ObservableCollection<Employee> _employee;
    Employee _Employee = new Employee();


    public AddRecordPage ()
    {
        InitializeComponent ();            
    }

    protected override async void OnAppearing()
    {
        var response = await client.GetStringAsync(Url);
        var Emp = JsonConvert.DeserializeObject<List<Employee>>(response);
        _employee = new ObservableCollection<Employee>(Emp);
        postsListView.ItemsSource = _employee;
        base.OnAppearing();
    }

1 Ответ

0 голосов
/ 04 октября 2018

В модели Employee может быть булево поперти с именем IsChecked, и вы можете изначально установить для него значение false для всех сотрудников и привязать его к элементу управления Checkbox.При касании элемента списка вы можете кодировать таким образом, чтобы свойство IsChecked выбранного элемента становилось истинным, и наоборот.Я полагаю, что у вас должна быть кнопка для удаления отмеченных элементов, и по нажатию кнопки проверьте наличие истинных сотрудников IsChecked в коллекции и удалите их.Дайте мне знать, если есть сомнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...