|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
Avalonia (отображение списка строк)12.01.2022, 22:23. Показов 21035. Ответов 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, азы Для одноуровневого списка строк сформировать итоговую строку сцеплением всех элементов списка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
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) в массовой культуре принято понимать. . .
|