|
0 / 0 / 0
Регистрация: 12.12.2021
Сообщений: 205
|
|
Avalonia (отображение списка строк)12.01.2022, 22:23. Показов 21099. Ответов 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, азы Для одноуровневого списка строк сформировать итоговую строку сцеплением всех элементов списка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства.
Жизнь действительно предъявляет каждому. . .
|
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
|
Лето уходит
kumehtar 17.08.2026
|
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
|
|
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины".
За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html
Задача: . . .
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|