locked
Данные в ListView RRS feed

  • Вопрос

  • Добавляю данные в ListView из базы данных таким способом:

     _words = new ObservableCollection<Words>();
                using (var db = new SQLiteConnection(dbPath))
                {
                    var wrd = from c in db.Table<Words>()
                              orderby c._subjects
                              select c;
                    foreach (Words c in wrd)
                    {
                        _words.Add(new Words
                        {
                            _word = c._word,
                            _translation = c._translation,
                            _number_of_repeating = c._number_of_repeating,
                            _subjects = c._subjects
                        });
                    }
                }
                Third.ItemsSource = _words;

    Соответствующая разметка в XAML:

    <DataTemplate>
                            <Grid HorizontalAlignment="Stretch" Margin="50, 10,0,0">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="200"/>
                                    <ColumnDefinition Width="500"/>
                                    <ColumnDefinition Width="200"/>
                            </Grid.ColumnDefinitions>
                                <TextBlock Grid.Column="0" FontSize="14" Text="{Binding _word}"/>
                                <TextBlock Grid.Column="1" FontSize="14" Text="{Binding _translation}"/>
                                <TextBlock Grid.Column="2" FontSize="14" Text="{Binding _subjects}"/>
                        </Grid>
                        </DataTemplate>

    Как теперь можно обратиться к элементам в ListView?

    Например выбрать один или 2 элемента и удалить их c ListView.

    11 мая 2013 г. 15:37

Ответы

  • Вы можете использовать коллекцию _words для доступа к элементам коллекции.
    11 мая 2013 г. 22:19
  • Чуть расширю ответ Kirill Bessonov-а. Если вы будите добавлять элементы в коллекцию и/или удалять их, то у вас будет в отображаемом списке происходить аналогичное изменение, спасибо ObservableCollection.

    Для того, чтобы выбрать элемент в списке, вы можете воспользоваться вот таким кодом:

    Third.SelectedItem = _words[0];
    13 мая 2013 г. 8:10
    Отвечающий
  • Для удаления, можно написать вот такой код:

    if (Third.SelectedItem != null)
    {
        _words.Remove((Words)Third.SelectedItem);
    }
    • Помечено в качестве ответа No_Comments 28 мая 2013 г. 16:08
    19 мая 2013 г. 17:01
    Отвечающий

Все ответы

  • Вы можете использовать коллекцию _words для доступа к элементам коллекции.
    11 мая 2013 г. 22:19
  • Чуть расширю ответ Kirill Bessonov-а. Если вы будите добавлять элементы в коллекцию и/или удалять их, то у вас будет в отображаемом списке происходить аналогичное изменение, спасибо ObservableCollection.

    Для того, чтобы выбрать элемент в списке, вы можете воспользоваться вот таким кодом:

    Third.SelectedItem = _words[0];
    13 мая 2013 г. 8:10
    Отвечающий
  • Но мне надо обратную операцию сделать: пользователь в ListView выбирает элементы, жмет, например, DELETE, и эти данные удаляются из коллекции _words.


    19 мая 2013 г. 5:32
  • Для удаления, можно написать вот такой код:

    if (Third.SelectedItem != null)
    {
        _words.Remove((Words)Third.SelectedItem);
    }
    • Помечено в качестве ответа No_Comments 28 мая 2013 г. 16:08
    19 мая 2013 г. 17:01
    Отвечающий
  • Спасибо, теперь поняла!
    28 мая 2013 г. 16:08