Форум программистов, компьютерный форум, киберфорум
C#: XAML
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
14 / 11 / 4
Регистрация: 14.11.2020
Сообщений: 411

Avalonia, перебор элементов

28.02.2021, 16:02. Показов 7504. Ответов 63
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть Grid, и для лучшей читаемости кода хотелось бы перебрать все элементы Грида.
Возможно ли это на Авалонии сделать? Видела, что в WPF такое делали, но подобное у меня на Авалонии не работает..
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.02.2021, 16:02
Ответы с готовыми решениями:

Avalonia
Приходилось ли кому работать с сабжем ? С WPF знаком не сильно. Но нужна кроссплатформенность. Собственно сабж это и позволяет, грубо...

Avalonia, азы
Как на Авалонии создать кнопку, которая при клике на нее вызовет окно, на котором выведется текст, к примеру: Привет, юзер! Саму кнопку я...

Асинхронность в Avalonia (MVVM)
Avalonia — кроссплатформенная платформа пользовательского интерфейса на основе XAML, основанная на WPF/UWP и распространяемая под лицензией...

63
14 / 11 / 4
Регистрация: 14.11.2020
Сообщений: 411
28.02.2021, 21:24  [ТС]
Студворк — интернет-сервис помощи студентам
И туда, и туда. Вроде, всё так делается?
Миниатюры
Avalonia, перебор элементов  
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
28.02.2021, 21:26
Nuyta, пришло.
0
14 / 11 / 4
Регистрация: 14.11.2020
Сообщений: 411
28.02.2021, 21:28  [ТС]
Помогите с классами. Если можно, то с комментированием. Я пока что читаю всё по Вашим ссылкам, но пока что не особо понимаю, что к чему
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
28.02.2021, 21:38
Цитата Сообщение от Nuyta Посмотреть сообщение
Кидает ошибки, но я не совсем понимаю что за чем следует.
Надо добавить ссылку на PresentationCore.
Добавляю из "Быстрых Решений", но у меня виснет - бесконечный ProggresBar.
Как можно по иному добавить ссылку?
0
14 / 11 / 4
Регистрация: 14.11.2020
Сообщений: 411
28.02.2021, 21:43  [ТС]
Её по идее скачать нужно.

Судя по информации от других людей
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
28.02.2021, 21:44
Цитата Сообщение от Nuyta Посмотреть сообщение
Её по идее скачать нужно.
Вроде с NuGet.
Но я не могу в Nuget найти этот пакет.
0
14 / 11 / 4
Регистрация: 14.11.2020
Сообщений: 411
28.02.2021, 21:45  [ТС]
https://www.dll.ru/files/presentationcore-dll

А не тут ли оно, или я ошибаюсь?
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
28.02.2021, 21:52
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Надо добавить ссылку на PresentationCore.
Проще выпилить всё что связано с Dispatcher. Либо искать чем его заменить в Avalonia. Просто так ссылку на PresentationCore добавить нельзя.

Вот он http://reference.avaloniaui.ne... ispatcher/
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
28.02.2021, 21:53
Похоже в Авалонии нет Диспетчера.
Тогда надо менять класс команд.

Не в курсе на счёт конфликтов с доступом к UI элементам не из UI потока?

Добавлено через 50 секунд
Цитата Сообщение от Someone007 Посмотреть сообщение
Проще выпилить всё что связано с Dispatcher. Либо искать чем его заменить в Avalonia. Просто так ссылку на PresentationCore добавить нельзя.
Да.
Я уже понял.
И CommandManager похоже в нём нет.
0
14 / 11 / 4
Регистрация: 14.11.2020
Сообщений: 411
28.02.2021, 21:55  [ТС]
Нет, на счёт конфликтов мне неизвестно.

Я WPF пока что только начала изучать, тонкости работы ещё неизвестны
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
28.02.2021, 21:57
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Похоже в Авалонии нет Диспетчера.
Оказывается он есть.

Цитата Сообщение от Элд Хасп Посмотреть сообщение
И CommandManager похоже в нём нет.
А вот этого похоже что действительно нет, во всяком случае поиск не увенчался успехом.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
28.02.2021, 22:14
Someone007, не в курсе что это за фигня?
Литерал, равный NULL, не может быть преобразован в ссылочный тип, не допускающий значение NULL.
В Авалонии ссылочным типам нельзя присвоить null ? !!!

Добавлено через 1 минуту
Цитата Сообщение от Someone007 Посмотреть сообщение
Оказывается он есть.
Я у Окна не нашёл свойства Dispatcher.....
В данной задаче не нужно, но в общем случае, наверное, как-то должен решаться вопрос доступа к UI элементам из других потоков.

Добавлено через 2 минуты
Цитата Сообщение от Nuyta Посмотреть сообщение
Я WPF пока что только начала изучать, тонкости работы ещё неизвестны
Не слишком широко замахнулиь?
Нет хороших знаний ООП, Шарпа.
А замахнулись ещё на WPF и Авалонию одновременно...

Осилите?
0
14 / 11 / 4
Регистрация: 14.11.2020
Сообщений: 411
28.02.2021, 22:16  [ТС]
Должна.
1 курс университета. Начали изучать Авалонию. Нужно ведь как-то осваиваться

У меня в Гите есть репозитории с моими практиками. Можете оценить? Насколько всё ужасно?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
28.02.2021, 22:18
Цитата Сообщение от Nuyta Посмотреть сообщение
Можете оценить?
Для начала надо самому с Авалонией разобраться.
0
14 / 11 / 4
Регистрация: 14.11.2020
Сообщений: 411
28.02.2021, 22:20  [ТС]
Да там не Авалония, там простые c# консольные мини-проекты, обычные лабораторки. Там всего два проекта с ООП, ну и структурные

Применение псевдо-инкапсуляции кастрированной и всё в этом роде
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
28.02.2021, 22:21
Someone007, требует вот такого объявления поля:
C#
1
        private object? tmp;
Я в шоке!!!
У них, что для Авалонии свой спек Шарпа?
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
28.02.2021, 22:21
Цитата Сообщение от Элд Хасп Посмотреть сообщение
В Авалонии ссылочным типам нельзя присвоить null ? !!!
Там в проекте включена фича nullable reference types из C# 9.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Я у Окна не нашёл свойства Dispatcher.....
В данной задаче не нужно, но в общем случае, наверное, как-то должен решаться вопрос доступа к UI элементам из других потоков.
Avalonia.Threading.Dispatcher.UIThread почти копия Dispatcher из WPF.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
28.02.2021, 22:29
Nuyta, сделал фиксацию.
Добавил библиотеку.
BaseInpc остался тот же.
Из класса команд RelayComman удалил CommandManeger и Dispatcher.

В основной проект добавил "рыбу" под совмещённый Model+ViewModel.
1
14 / 11 / 4
Регистрация: 14.11.2020
Сообщений: 411
28.02.2021, 22:33  [ТС]
Отлично. Мне немного времени понадобится, чтобы изучить коммит. Отпишусь (скорее всего завтра), как изучу

Спасибо большое.

Что дальше делать нужно будет?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
28.02.2021, 22:37
Цитата Сообщение от Someone007 Посмотреть сообщение
Avalonia.Threading.Dispatcher.UIThread почти копия Dispatcher из WPF.
Здесь другое.
В WPF все элементы происходят от Object -> DispatcherObject -> DependencyObject ....

А здесь от Object -> AvaloniaObject.

Совсем другая архитектура.

Добавлено через 3 минуты
Цитата Сообщение от Nuyta Посмотреть сообщение
Что дальше делать нужно будет?
Пока не знаю.
Разбираюсь.

В том виде что сейчас надо написать тело методов ClickKeyCanExecute и ClickKeyExecute:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using Simplified;
using System;
using System.Collections.Generic;
using System.Text;
 
namespace CustomCalculator
{
    public class ModelViewModel : BaseInpc
    {
        private decimal _display;
 
        /// <summary>Свойство для текста дисплея.
        /// Пока decimal, но возможно придётся изменить на string.</summary>
        public decimal Display { get => _display; private set => Set(ref _display, value); }
 
        /// <summary>Нужно для инициализации команды (Один из способов).</summary>
        private RelayCommand<string>? _clickKeyCommand;
 
        /// <summary>Команда клика по клавише.
        /// В параметре получает текст идентифицирующий клавишу.</summary>
        public RelayCommand<string> ClickKeyCommand => _clickKeyCommand 
            ??(_clickKeyCommand = new RelayCommand<string>(ClickKeyExecute, ClickKeyCanExecute));
 
        /// <summary>Проверяющий метод команды.</summary>
        /// <param name="parameter">Текст идентифицирующий клавишу></param>
        /// <returns>Возвращает <see langword="true"/>, если выполнение
        /// команды с этим параметром разрешено.</returns>
        private bool ClickKeyCanExecute(string parameter)
        {
            throw new NotImplementedException();
        }
 
        /// <summary>Исполнительный метод команды.</summary>
        /// <param name="parameter">Текст идентифицирующий клавишу></param>
        private void ClickKeyExecute(string parameter)
        {
            throw new NotImplementedException();
        }
 
        protected override void OnPropertyChanged(string propertyName, object oldValue, object newValue)
        {
            base.OnPropertyChanged(propertyName, oldValue, newValue);
 
            // Если изменилось значение свойства Display,
            // то вызывается перепроверка команды.
            if (propertyName == nameof(Display))
                ClickKeyCommand.RaiseCanExecuteChanged();
        }
    }
 
}
В них будет поступать текст кнопки.
Надо его обрабатывать.
Метод ClickKeyExecute по нажатой кнопке изменяет свойство Display.
А метод ClickKeyCanExecute определяет можно ли эту кнопку в нажимать.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.02.2021, 22:37

Консоль .Net Core и Avalonia
Добрый день! Кто-нибудь пользовался связкой консоль .net core для описания модели данных + Avalonia в качестве UI? 1. Как оно?...

В чем принципиальное отличие Avalonia и Xamarin?
Скорее всего, данный вопрос возникал не только у меня (но подробную инфу не нашел). В чем собственно принципиальная разница между...

Можно ли использовать Avalonia в Rider?
Можно ли использовать Avalonia в Rider?

Перебор всех нечетных элементов массива х из 99 элементов
Чему будет равно значение переменной s после завершения фрагмента программы: s:=0; i:=1; while (i&lt;100) do begin ...

Перебор элементов
Вот такой запрос сгенерировал linq to sql SELECT TOP (1) ., ., ... FROM AS WHERE . = @p0 Появился вопрос: WHERE перебирает в этом...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Теория всего 12. ВГК
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928 Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат» Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru