Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 15.10.2017
Сообщений: 38
1
WPF

Чтение данных из элемента ListView

05.01.2021, 02:12. Показов 2609. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, подскажите пожалуйста, как можно считать необходимую часть элемента ListView.
Есть элемент управления:
XML
1
2
3
4
5
6
7
8
9
10
<ListView Name="ListViewFiles" MouseDoubleClick="List_MouseDoubleClick" Margin="10,27,10,10" Grid.Column="0">
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="Имя" DisplayMemberBinding="{Binding Name}" Width="200"/>
                        <GridViewColumn Header="Дата изменения" DisplayMemberBinding="{Binding ModifiedDate}" Width="100"/>
                        <GridViewColumn Header="Путь" DisplayMemberBinding="{Binding PathToFile}" Width="280" />
                        <GridViewColumn Header="Проверен" DisplayMemberBinding="{Binding Checked}" Width="70"/>
                    </GridView>
                </ListView.View>
</ListView>
Класс:
C#
1
2
3
4
5
6
7
public class File
    {
        public string Name { get; set; }
        public string ModifiedDate { get; set; }
        public string PathToFile { get; set; }
        public string Checked { get; set; }
    }
Я хочу сделать так, чтобы по двойному нажатию на элемент списка брался путь до файла, то есть второе поле ListView.
Подскажите пожалуйста, как нужно модифицировать данный метод, чтобы получить путь к файлу и отправить его в метод
C#
1
2
3
4
5
6
7
private void List_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (ListViewFiles.SelectedItem != null)
            {
                findWord.OpenFile(/*Сюда*/);
            }
        }
Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.01.2021, 02:12
Ответы с готовыми решениями:

Запись из ListView в ini файл и чтение данных
Добрый день. Подскажите плиз. Есть форма, на которой ListView, необходимо сохранить данные в ini...

Чтение данных из бд в listview
Здесь listview с контекстным меню. В меню 2 пункта. По клику на пункт, запись из listview'a должна...

Чтение данных в ListView из Ini
Привет столкнулся с такой проблемой при загрузке данных из ini файла в listview: function ReadS:...

Структуры данных-стек. Чтение головного элемента
не понимаю что подразумевает эта функция. написано &quot;Возможны три операции со стеком: добавление...

3
Модератор
Эксперт .NET
15465 / 10711 / 2786
Регистрация: 21.04.2018
Сообщений: 31,531
Записей в блоге: 2
05.01.2021, 14:07 2
Лучший ответ Сообщение было отмечено RaymondNDo как решение

Решение

Цитата Сообщение от RaymondNDo Посмотреть сообщение
Есть элемент управления:
А где привязка к коллекции?
По идее у вас в VM должно быть свойство:
C#
1
public ObservableCollection<File> Files {get;} = new ObservableCollection<File>();
И установлена привязка к этой коллекции:
XML
1
    <ListView ItemsSource="{Binding Files}" ...
Тогда можно получить выделенный элемент следующим образом:
C#
1
2
3
4
5
6
7
        private void List_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (ListViewFiles.SelectedItem is File file)
            {
                findWord.OpenFile(file.PathToFile );
            }
        }
P.S. Ещё несколько замечаний:
- Задание имён WPF UI элементам обычно говорит о неправильной реализации. Подумайте как можно реализовать убрав все имена.
- Обращение к Данным в Code Behind - плохая практика. Лучше присоединить к событию команду VM и обработку делать там.
2
WPF Разработчик
463 / 167 / 42
Регистрация: 20.02.2018
Сообщений: 285
05.01.2021, 14:14 3
Лучший ответ Сообщение было отмечено RaymondNDo как решение

Решение

RaymondNDo,
при данном подходе вы не реализуете весь потенциал WPF. Если интересно, изучите вопрос механики в WPF Binding.

Это плохой код, но если Вам надо быстрое решение и нет желания переписывать проект правильно то вот метод
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
private void List_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{  
    //извлекаем выбранный элемент из ListViewFiles
    var file = ListViewFiles.SelectedItem as File;
    //проверяем то ли мы извлекли
    if (file != null)
    {  
        //проверяем существование файла
        if (File.Exists(file.PathToFile))
            //открываем файл
            findWord.OpenFile(file.PathToFile);
    }
}
1
1 / 1 / 0
Регистрация: 15.10.2017
Сообщений: 38
05.01.2021, 14:55  [ТС] 4
Спасибо за помощь! Постараюсь изучить данный вопрос поподробнее.
0
05.01.2021, 14:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.01.2021, 14:55
Помогаю со студенческими работами здесь

Организовать заданную структуру данных: точка (x, y) плоскости, стек (добавление, удаление и чтение элемента)
Организовать заданную структуру данных: точка (x, y) плоскости, стек. Определить структуру элемента...

Как осуществить прокрутку элемента управления в ListView до заданного элемента
Собственно вопрос в названии...Видел как это делают на VB если кто то может перевести с него могу...

Listview вывод данных и переход по нажатию на другой Listview SQLite
Доброго извините за название темы, долго не мог сформировать название, В общем у меня беда с...

Передача данных из ListView в другой Activity в ListView
Добрый день. Пытаюсь разобраться с передачей данных с ListView, но выходит что то непонятное,...

Чтение из ListView
Пишу программу-распаковщик....

ListView чтение из столбцов
как прочитать текст выбранного элемента (таблица , 3 столбика, читать из 2 второго столбца...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru