Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Shamsik
-42 / 17 / 15
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
1

Как сделать, чтобы в ListView при нажатии на позиции выводилось его название?

14.05.2016, 23:33. Просмотров 1032. Ответов 8
Метки нет (Все метки)

Добрый ночи такая небольшая проблема возникла как сделать чтобы в listview при нажатии на позиции выводилось его название.


XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 <ListView x:Name="listView"  BorderBrush="Transparent" Foreground="Black" ItemsSource="{Binding TrackCollection}" MouseDoubleClick="listView1_MouseClick" VerticalAlignment="Top">
 
         
            <ListView.ItemContainerStyle>
                
                <Style TargetType="ListViewItem">
                   
                    <Setter Property="FontSize" Value="14" />
                    <Setter Property="HorizontalContentAlignment" Value="Center" />
 
                </Style>
                
            </ListView.ItemContainerStyle>
        </ListView>

MouseDoubleClick="listView1_MouseClick" - этот метод не помогает почему та.
Когда я нажимаю на позиции он мне выдает путь к классу.


C#
1
2
3
4
5
6
7
  private void listViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            ListViewItem item = sender as ListViewItem;
            object obj = item.Content;
 
            MessageBox.Show(Convert.ToString(item.Content));
        }
Помогите пожалуйста с проблемой, нужно чтобы при нажатии на кнопку выводилось название.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2016, 23:33
Ответы с готовыми решениями:

Как сделать чтобы при нажатии на блок номер 2, снизу выводилось оборудование 2 блока
И так же чтобы при нажатии на блок 1 из базы бралась информация по блоку 1

Как сделать так, чтобы при нажатии button1 менялось название компонента, который в edit1 (ButtonL)?
Есть две формы Form1 и Form2 В Form1 есть buttonL. В Form2 есть edit1 и button1 В edit1 buttonL...

Как сделать что б при нажатии кнопки на экран выводилось сообщение?
Всем привет! Я мне нужно написать один проект. И в нем нужно часть кода писать на С #. Я с этим...

Сделать так чтобы в DataGridView выводилось название предмета вместо id
Есть две таблицы задание и предмет(idПредмета, название), они связаны между собой по внешнему ключу...

Как сделать так, чтобы при нажатии на поле выделялось его содержимое?
Я состряпал на сайте кнопку и поставил ниже её поле &lt;textarea&gt; c ссылкой и картинкой. И хочу, чтобы...

8
atoi
133 / 127 / 87
Регистрация: 18.05.2013
Сообщений: 399
Завершенные тесты: 3
15.05.2016, 15:19 2
Shamsik,
C#
1
2
ListView listView = sender as ListView;
var item = listView.SelectedItem;
0
Shamsik
-42 / 17 / 15
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
15.05.2016, 15:35  [ТС] 3
Нет, не помогает. Блин открывает путь к кастомному ListView
0
golubyatnikovtv
181 / 180 / 96
Регистрация: 30.04.2016
Сообщений: 478
Завершенные тесты: 3
15.05.2016, 19:14 4
Shamsik
Обратите внимание на код

Цитата Сообщение от atoi Посмотреть сообщение
ListView listView = sender as ListView;
var item = listView.SelectedItem;
Здесь в переменной item будет лежать выделенный элемент из коллекции TrackCollection.

Вам нужно привести тип из object в тип вашего элемента. Наверное, он называется Track. Т.е.

C#
1
2
ListView listView = sender as ListView;
var track = (Track) listView.SelectedItem;
Затем уже можно вытащить название из этого трэка.
0
15.05.2016, 19:14
Shamsik
-42 / 17 / 15
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
15.05.2016, 19:20  [ТС] 5
Дополнительные сведения: Не удалось привести тип объекта "Project.CustomListView" к типу "System.Windows.Controls.Primitives.Track".
0
golubyatnikovtv
181 / 180 / 96
Регистрация: 30.04.2016
Сообщений: 478
Завершенные тесты: 3
15.05.2016, 19:47 6
Shamsik, вот уже больше информации, это хорошо. Попробуйте так:

C#
1
2
ListView listView = sender as ListView;
var track = (Project.CustomListView) listView.SelectedItem;
0
Shamsik
-42 / 17 / 15
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
15.05.2016, 21:01  [ТС] 7
C#
1
2
3
4
5
6
        private void listViewItem_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            ListView listView = sender as ListView;
            var track = (Project.CustomListView)listView.SelectedItem;
            MessageBox.Show(Convert.ToString(track));
        }
XML
1
2
3
4
5
6
7
8
9
10
11
12
    <ListView x:Name="listView" 
        Height="440" Width="944" 
        MouseDoubleClick="listViewItem_MouseDoubleClick"  
        BorderBrush="Transparent" Foreground="Black" 
        ItemsSource="{Binding TrackCollection}" 
        VerticalAlignment="Top">
 
 
            <ListView.ItemContainerStyle>
            
            </ListView.ItemContainerStyle>
        </ListView>

Не помогает выходит только путь к кастомному классу.
0
golubyatnikovtv
181 / 180 / 96
Регистрация: 30.04.2016
Сообщений: 478
Завершенные тесты: 3
15.05.2016, 21:08 8
Лучший ответ Сообщение было отмечено Shamsik как решение

Решение

Цитата Сообщение от golubyatnikovtv Посмотреть сообщение
Затем уже можно вытащить название из этого трэка.
Вы забыли сделать вот этот пункт.

Как называется свойство в классе Project.CustomListView в котором содержится название?
В MessageBox нужно выводить свойство с названием, а не весь объект.
Как то так:

C#
1
MessageBox.Show(track.Name);
Замените тут свойство Name на свойство с названием.
1
Shamsik
-42 / 17 / 15
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
15.05.2016, 21:11  [ТС] 9
C#
1
2
3
4
5
6
7
class CustomListView
    {
        public string NameFile { get; set; }
        public string FileSize { get; set; }
        public string Count { get; set; }
        public string TimeOut { get; set; }
    }
Добавлено через 52 секунды
Все отлично заработало, спасибо тебе.
0
15.05.2016, 21:11
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2016, 21:11

Как сделать чтобы при повторном нажатии на элемент из массива его предыдущий цвет возвращался?
Добрый день. Мне нужно повторно поменять цвет эллипса. Как сделать .чтобы при повторном нажатие...

Как сделать так чтобы при нажатии на поле из выпадающего списка, в input записывалось его значение на php?
Доброго времени суток! У меня есть БД Kurs , в ней таблица Pryce , в которой поля предмет...

Как сделать, чтобы при нажатии по нику или логину пользователя, попасть на его страницу php mysql
Как на странице пользователи сайта организовать такую вещь: Это уже сделано -&gt; Выводим список...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru