|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
Avalonia (отображение списка строк)12.01.2022, 22:23. Показов 21834. Ответов 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, азы Для одноуровневого списка строк сформировать итоговую строку сцеплением всех элементов списка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
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.
Опрашиваются регистры. . .
|