powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ListView удаление Item
8 сообщений из 8, страница 1 из 1
ListView удаление Item
    #39706806
Евгений, Екатеринбург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ListView заполняется из коллекции через ItemSource. Пытаюсь по нажатию кнопки удалить один из айтемов
Код: c#
1.
MyCollection.RemoveAt(MyListView.SelectedIndex);


Но, получается что индекс всегда равен -1, как будто выделения нет. Такое ощущение, что при нажатии кнопки происходит потеря фокуса у ListView и выделение теряется.
Как сделать удаление правильно?
...
Рейтинг: 0 / 0
ListView удаление Item
    #39706844
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно, включен мультиселект
...
Рейтинг: 0 / 0
ListView удаление Item
    #39706907
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProВозможно, включен мультиселект
Судя по коду, имеет место быть обращение из модели к свойствам контрола напрямую, что в WPF обычно не принято. Нужно сделать two-way binding свойства модели, отвечающего за хранение выделененного элемента (или его индекса), и MyListView.SelectedItem/MyListView.SelectedIndex. В модели обращаться именно к свойству - будет вполне видно его значение.
...
Рейтинг: 0 / 0
ListView удаление Item
    #39706930
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Евгений, Екатеринбург, у Вас это какая-то особенность работы Вашего приложения.
Вот простейший пример.
XAML
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
<Window x:Name="window" x:Class="SQL_ru__WPF_.ListView_удаление_Item"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:SQL_ru__WPF_"
        mc:Ignorable="d"
        Title="ListView_удаление_Item" Height="450" Width="800">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
        </Grid.RowDefinitions>

        <ListView x:Name="MyListView" ItemsSource="{Binding MyCollection, ElementName=window}" HorizontalAlignment="Center"/>
        <Button Content="Кнопка" Grid.Row="1" VerticalAlignment="Center" HorizontalAlignment="Center" Click="Button_Click"/>

    </Grid>
</Window>

Код XAML.cs
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
    public partial class ListView_удаление_Item : Window
    {
        public ListView_удаление_Item()
        {
            InitializeComponent();
        }

        public ObservableCollection<String> MyCollection { get; set; } = new ObservableCollection<string>()
        {   "Январь", "Февраль", "Март",
            "Апрель", "Май", "Июнь",
            "Июль", "Август", "Сентябрь",
            "Октябрь", "Ноябрь", "Декабрь"};

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (MyListView.SelectedIndex >= 0)
                MyCollection.RemoveAt(MyListView.SelectedIndex);
        }

    }


В нём всё работает без проблем.
...
Рейтинг: 0 / 0
ListView удаление Item
    #39706992
Евгений, Екатеринбург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Eld HaspЕвгений, Екатеринбург, у Вас это какая-то особенность работы Вашего приложения.
да, похоже это у меня что-то не то с коллекцией. Буду разбираться. Спасибо за пример.
...
Рейтинг: 0 / 0
ListView удаление Item
    #39707083
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SelectedIndex вообще вроде как не отражает реальный индекс элемента в ListBox, ведь вы могли применить сортировку, я могу ошибаться, но это вроде индекс элемент в представлении коллекции, а не коллекции источника. По этому подобный финд делать вообще не стоит, но я могу ошибаться, поправьте, если не прав.
...
Рейтинг: 0 / 0
ListView удаление Item
    #39707098
Eld Hasp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes, Вы правы. Но это в автором темы не уточнялось - так что, наверное, он сам с этим разбирается или ему этого достаточно.
...
Рейтинг: 0 / 0
ListView удаление Item
    #39707160
Евгений, Екатеринбург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем спасибо, разобрался - действительно в другом месте исключение возникало - в SelectionChanged навигация по другому списку была и когда при удалении выделение снималось, то возникало исключение за выход диапазона.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ListView удаление Item
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]