|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
Avalonia (отображение списка строк)12.01.2022, 22:23. Показов 21008. Ответов 98
Метки нет (Все метки)
Здравствуйте! Подскажите, пожалуйста, в каком элементе управления в Авалонии лучше выводить список строк, чтобы потом можно было выделить какие-то строки и скопировать их, например, в Excel? Заранее спасибо!
0
|
|
| 12.01.2022, 22:23 | |
|
Ответы с готовыми решениями:
98
Скрытие\отображение нового списка при выборе значения из списка |
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|||
| 03.02.2022, 11:58 | |||
|
Добавлено через 1 минуту
0
|
|||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|||||||
| 03.02.2022, 12:00 | |||||||
|
Было так:
0
|
|||||||
|
Модератор
|
|||||||
| 03.02.2022, 12:06 | |||||||
|
Там должен быть Grid, который в контекст принимает массив значений, и в каждой его клонке выводится значение с соответствующим индексом. Что-то в подобном духе:
1
|
|||||||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 03.02.2022, 12:08 | |
|
Элд Хасп, как вариант
0
|
|
|
Модератор
|
|||
| 03.02.2022, 12:11 | |||
|
К ТС какой смысл вопросы задавать? Ему надо разъяснять как правильно, а не интересоваться у него этим. Видно же, что даже по самым азам "плавает" и не только WPF, но и Шарпа. Добавлено через 2 минуты Но это тоже не всегда даст требуемый результат. Самый надёжный - это через сплит и отдельный вывод каждого значения.
0
|
|||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 03.02.2022, 12:13 | |
|
0
|
|
|
Модератор
|
||
| 03.02.2022, 12:16 | ||
|
В задаче ТС - это три значения. Если их очень много (больше 5-10), то можно использовать вложенный ItemsControl.
0
|
||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|||||||||||||||||||||
| 03.02.2022, 19:53 | |||||||||||||||||||||
|
Sun1212, окей если Вас устроит по-простому, то можно просто сделать 3 текстблока и задать каждому из них фиксированное значение, например 100 пикселей по ширине.
Для этого я создал ItemTemplate -- то есть стиль каждого элемента в списке. Стиль содержит три текстблока по горизонтале.
Теперь вместо string будем использовать свой тип Document, это нужно для того, чтобы мы всегда знали где у "Леонардо ди сер Пьеро да Винчи" имя, фамилия и отчество, грубо говоря. То есть мы будем держать значения не в одной строке, а в трёх разных.
Для этого у типа Document есть переопределение метода ToString(). Мы берём каждое свойство этого объекта и преобразовываем в одну строку return Number + " " + Name + " " + Value; -- в этой вот строке.Теперь нужно подставить преобразование для каждого объекта сюды:
Но можно сделать ещё немного по-другому. Можно высчитать размер самого длинного TextBlock'a и каждому из них задать его размер.
2
|
|||||||||||||||||||||
|
Модератор
|
||
| 03.02.2022, 22:53 | ||
|
Правда не могу точно сказать будут ли они работать в столь сложной компоновке. Но, честно говоря, мне всё это кажется всё более и более бессмысленным. По сути сделали свой DataGrid или ListView. Так почему бы сразу ими и не воспользоваться?
0
|
||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 03.02.2022, 22:58 | |
|
Элд Хасп, там в начале темы было написано, что должно быть именно в списке, одной колонкой. Потом оказалось что это три колонки в одной. Я предложил вариант с DataGrid — как я понял, он был одобрен, но потом я вспомнил, что нужно по нажатию на одну ячейку — выделять строку, чтобы её перенести в нижний текстбокс и мне показалось, что изменять придётся полностью всё, я решил закончить, что есть.
0
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 03.02.2022, 23:10 | |
|
Не то, чтобы мне лень
![]() но это курсовая, я не думаю что там обязательно делать всё идеально.
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|||||||
| 04.02.2022, 11:19 [ТС] | |||||||
|
limeniye, спасибо большое!
Можно дилетанский вопрос, у меня вся информация попадает в одну колонку, хотя делаю Grid с разбиением на столбцы... Что делаю не так?
0
|
|||||||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
||
| 04.02.2022, 11:46 | ||
|
Вы выделили в гриде два ряда —
Grid.RowDefinitions = "*, *" и три колонки ColumnDefinitions="*, *, *".А лист бокс Вы поместили в первый ряд, первую колонку. Grid.Row="0" — это значение по умолчанию, его необязательно писать. Следовательно если Вы не указываете Grid.Column, то он тоже имеет значение 0 — то есть первая колонка. Укажите значение Grid.Column="1", чтобы переместить Ваш список во вторую колонку (отсчёт с нуля, не забывайте), или, если Вы хотите например переместить его сразу в две колонки (например в первую и вторую), тогда указывайте Grid.ColumnSpan="2". В таком случае он попадёт и в колонку 0 и в колонку 1. Если Вы хотите поместить его в две последние колонки, то укажите Grid.Column="1" и потом Grid.ColumnSpan="2". Так как мы не указываем Grid.Column — он изначально 0, то и Grid.ColumnSpan поместит список в две первые колонки, а когда мы указываем Grid.Column="1", то мы указываем от какого элемента Grid.ColumnSpan должен "заполнить" нужное количество колонок. Добавлено через 10 минут
- потом, когда пользователь жмакнет эти преславутые кнопки, нужно подсунуть ему какую-то информацию в буфер обмена, например "Hello World"; - если всё успешно, то нужно в буфер обмена ему передать свойство SelectedItemsAsString. Это оно хранит выделенные элементы, которые отображаются в TextBox'e, внизу. Попробуйте сами сделать каждый пункт. Наработки отправляйте сюды.
0
|
||
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 04.02.2022, 11:50 [ТС] | |
|
0
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 04.02.2022, 11:51 | |
|
покажите
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
||
| 04.02.2022, 12:00 [ТС] | ||
|
0
|
||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 04.02.2022, 12:12 | |
|
Sun1212, чтобы они просто были одна под другой? Это не сложно, но Вы бежите вперёд. Для начала разберитесь как отловить Ctrl + C. Пусть при нажатии этих кнопок у Вас будет что-то происходить для теста, например вызываться ошибка
throw new ArgumentException("Была нажата комбинация клавиш Ctrl + C");.Остальное, пока что, не имеет значения. Поищите эту информацию в интернете, я уверен что это очень простая задача. Добавлено через 5 минут я вот о крыл гугл, сразу же нашёл ответ — событие KeyDown
0
|
|
|
Модератор
|
||||||||
| 04.02.2022, 13:06 | ||||||||
|
Что в DataGrid, что в ListView. Добавлено через 11 минут Что-то в таком духе (пишу здесь - могут быть ошибки):
Вот не знаю только в Авалонии есть размерные группы или нет.
1
|
||||||||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 04.02.2022, 13:12 | |
|
Элд Хасп, честно говоря -- не понмманию что и куда, там же стоял
<StackPanel Orientation="Horizontal" Background="Red"> ![]() Добавлено через 3 минуты Одно и тоже, только строк меньше
0
|
|
| 04.02.2022, 13:12 | |
|
Скрытие\отображение нового списка при выборе значения из списка с выбором одного элемента Отображение списка и работа с элементом списка Даны два списка строк. Из списка один удалить повторяющиеся элементы списка два Avalonia, азы Для одноуровневого списка строк сформировать итоговую строку сцеплением всех элементов списка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|
|
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс
Ссылка на сгенерированную музыкальную композицию:
https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013
Я говорю, что Время- как вода
течет. . .
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|