|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
Avalonia (отображение списка строк)12.01.2022, 22:23. Показов 21459. Ответов 98
Метки нет (Все метки)
Здравствуйте! Подскажите, пожалуйста, в каком элементе управления в Авалонии лучше выводить список строк, чтобы потом можно было выделить какие-то строки и скопировать их, например, в Excel? Заранее спасибо!
0
|
|
| 12.01.2022, 22:23 | |
|
Ответы с готовыми решениями:
98
Скрытие\отображение нового списка при выборе значения из списка |
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|||||||||||||||||||||||||||||||
| 01.02.2022, 12:37 | |||||||||||||||||||||||||||||||
|
У Вас первый параметр
object value -- туда приходит то, что Вы указываете при Binding'е. Кстати, только сейчас заметил. Вы тут пишите StringFormat
Сначала давайте объявим Ваш конвертёр:
Сначала попробуем узнать пришёл ли нам string
return value;. И так, допустим мы убедились, что это string, что дальше нужно сделать? Как я понял у Вас в string попадает две строки, нужно взять только вторую:
1
|
|||||||||||||||||||||||||||||||
|
Модератор
|
||
| 01.02.2022, 13:44 | ||
|
StringFormat может работать только с одним значением, ведь свойство тоже принимает только одно значение. Поэтому все элементы с индексами не равными 0 будут игнорироваться. Добавлено через 1 минуту Для вашей задачи вам нужен именно конвертер. Выше limeniye дал пример такого конвертера.
0
|
||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
||
| 01.02.2022, 13:47 | ||
|
Данный конвертер просто из двух строк берёт вторую, но он не разбивает её на нужный Вам временный формат. С этим пока не будем спешить, сначала попробуйте запустить код из поста #41
0
|
||
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
||||||||
| 01.02.2022, 18:05 [ТС] | ||||||||
"Название документа" "Название Номер Значение" "A1 0.01 2,1e+002" "A2 0.02 2.2e+003" ................ "A100 0,03 2.3e+004" Хотелось бы выровнять строки, начиная с третьей, чтобы было похоже на таблицу Добавлено через 1 минуту Если пишем конвертер, то нужно ли указывать следующее свойство?
0
|
||||||||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|||||||||||||
| 01.02.2022, 18:17 | |||||||||||||
|
с этого
Отвечаю на Ваш вопрос -- можем не писать StringFormat, если используем конвертёр.
0
|
|||||||||||||
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
||||||
| 01.02.2022, 18:20 [ТС] | ||||||
|
limeniye, мне наверно нужно просто выровнять, начиная с 3-ей строки, примерно так:
0
|
||||||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 01.02.2022, 18:21 | |
|
Ага, по ширине, понял.
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 01.02.2022, 18:22 [ТС] | |
|
Табуляция съезжает)
Значения второй колонки (0,01, 0,02, 0,03) - должлны быть под строкой "Номер", а значения третьей колонки - под строкой "Значения"
0
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
||
| 01.02.2022, 18:31 | ||
|
Вы явно что-то неправильно поняли. Вы уверены что это всё должно быть одной колонкой, в которой три колонки накостыленные наколенке? Может по-человечски сделать через DataGrid? типо вот так:
0
|
||
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 01.02.2022, 18:34 [ТС] | |
|
limeniye, может действительно лучше сделать через DataGrid
0
|
|
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 01.02.2022, 19:04 | |
|
Sun1212, а мне нравится как Вы всегда сами сомневаетесь в правильности задачи.
Судя из поста #28, так сделать не получится. Допустим у Вас было: "Иванов" "Иван" "Иванович" -- три отдельных слова. А стало "Иванов Иван Иванович", то есть объеденились слова. Ладно если у нас просто случай и мы можем просто разделить слова через пробел обратно в "Иванов" "Иван" "Иванович". Но что если будет какой-то там "Леонардо ди сер Пьеро да Винчи" -- где тут разделять? -- не ясно. То есть в одну сторону мы можем преобразовывать, а вот в обратную -- нет. Можно чуток переписать Ваш код и не преобразовывать данные в коде, а приобразовывать данные на View. Тогда будет доступ к изначальным данным. Потом нужно будет расписать алгоритм табуляции: - ищем самый длинный элемент; - добавляем другим элементам недостающие пробелы.
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 01.02.2022, 19:15 [ТС] | |
|
limeniye, я в правильности своей задачи не сомневаюсь) Просто я в Авалонии новичок, не знаю, как лучше сделать, Вам доверяю!
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
||||||||
| 01.02.2022, 19:23 [ТС] | ||||||||
|
По поводу разделения данных - таких длинных, как
Добавлено через 4 минуты
Или для DataGrid можно сделать контекстное меню?
0
|
||||||||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 01.02.2022, 20:24 | |
|
Sun1212, ну, я дописал код, но не учёл, что точка, по размеру, меньше чем обычный символ
Поэтому если добавить нужно количество пробелов там, где их нехватает -- не поможет. Тут придётся только по-нормальному делать. Но сегодня, к сожалению, у меня нет времени. Если никто не допишет, позже возьмусь.
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
| 01.02.2022, 20:42 [ТС] | |
|
Хорошо, буду ждать!
0
|
|
|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
||||||
| 03.02.2022, 08:23 [ТС] | ||||||
|
Если упростить задачу, в ListBox помещаются следующие данные:
"A1 0.01 2.1e+002" "A2 0.02 2.2e+003" ........................ "A100 0.03 2.3e+004" Подскажите, пожалуйста, как используя StringFormat для ListBox сдвинуть данные (в каждой строке вторые и третьи значения) на 3 пробела?
0
|
||||||
|
Модератор
|
||||||||||||
| 03.02.2022, 11:32 | ||||||||||||
|
StringFormat - это простейший консольный формат, полный эквивалент вот этой строки:
Это ПОЛНОСТЬЮ ОДНО И ТО ЖЕ. Для того чтобы вам в консоли добиться такого эффекта, вам нужно ПЕРЕД выводом обработать входные данные:
Вы можете это с делать в VM перед записью строк в коллекцию, можете сделать в WPF конвертере который будет применяться ПЕРЕД ВЫВОДОМ. Но такая обработка ОБЯЗАТЕЛЬНО НУЖНА. По крайней мере пока в Шарпе не введут дополнительные форматы для строк которые можно применить в Console.WriteLine().Так как, ещё раз пишу, консольный формат и StringFormat - это полностью одно и тоже. Небольшая разница возникает только в синтаксисе записи в XAML из-за требований XML (даже не XAML!, а более общих). Если же это записывать на Шарпе, то будет полностью на 100% идентичный и синтаксис.
0
|
||||||||||||
|
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
|
|
| 03.02.2022, 11:36 | |
|
Элд Хасп, как раз-таки в консоле так можно. Там размер пробелов будет одинаково разделять колонки.
У меня есть такая консольная программа со второго курса. Касательно вопроса от Sun1212 — можно сделать 3 TextBlock'a( как три колонки ). По идее, если растягивается один, растягиваются и остальные.
0
|
|
|
Модератор
|
||
| 03.02.2022, 11:52 | ||
![]() Чё-то с утра вы вдвоём Andrey-MSK, решили меня поразить... Причём здесь "пробелы одинакового размера" (о которых пишите вы) и "сдвинуть ... строке вторые и третьи значения ... на 3 пробела"? То что вы пишите связанно только с используемым шрифтом. В консоли по умолчанию используется моноширинный шрифт. В WPF же использует какой-то из более современных с переменой шириной кегля. А то что пишет ТС - это вставка дополнительных символов в строку. В формате это не возможно. Для строк предусмотрен только один формат, отображающий её полностью в неизменном виде.
0
|
||
| 03.02.2022, 11:52 | |
|
Скрытие\отображение нового списка при выборе значения из списка с выбором одного элемента Отображение списка и работа с элементом списка Даны два списка строк. Из списка один удалить повторяющиеся элементы списка два Avalonia, азы Для одноуровневого списка строк сформировать итоговую строку сцеплением всех элементов списка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|