Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/14: Рейтинг темы: голосов - 14, средняя оценка - 4.57
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923

ReactiveUI.Foody propetychanged

26.06.2022, 02:22. Показов 3600. Ответов 53
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть свойство:
C#
1
2
        [Reactive]
        public string? Name { get; set; }
Собственно пытаюсь отследить его изменения
C#
1
            this.WhenAnyObservable(x => x.Name).Subscribe(x => System.Diagnostics.Debug.WriteLine(x));
Но так как оно не Observable -- параметр не подходит.

В ответе от Someone007 в теме
https://www.cyberforum.ru/wpf-... st16027540

Я вижу немного другую реализацию объявления:
C#
1
2
        private readonly ObservableAsPropertyHelper<string> _selectedItemsAsText;
        public string SelectedItemsAsText => _selectedItemsAsText.Value;
С ней я поигрался, но проблему свою решить таки не смог.

Можно сделать через ReactiveProperty<string?> Name { get; set; }, по идее должно заработать, но тогда в View придётся постоянно указывать .Value, что, по сути, является нарушением MVVM, View ничего не должна знать о том, как устроены свойства.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.06.2022, 02:22
Ответы с готовыми решениями:

ReactiveUI и навигация
Есть ли в сети или у кого примеры (не)простейшей навигации с использованием данного фреймворка?

ReactiveUI составное свойство
Вроде бы и к WPF, а вроде и вообще к фреймворку. Но тем не менее: public class Model { public string Name {get;set;} public...

ReactiveUI: изменение свойства элемента коллекции
Есть класс: public class Unit : INotifyPropertyChanged { public int Mode { get; set; } ...

53
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
28.06.2022, 18:42  [ТС]
Студворк — интернет-сервис помощи студентам
Элд Хасп, в каком смысле?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16445 / 11288 / 2892
Регистрация: 21.04.2018
Сообщений: 33,185
Записей в блоге: 2
28.06.2022, 19:32
Цитата Сообщение от limeniye Посмотреть сообщение
в каком смысле?
А какие есть варианты смыслов?

Вы можете в VM, если нужно, использовать стринг свойство:
C#
1
public string Status {get; private set;} // Empty | Success | Fail
И возможно (точно не уверен) инт свойство:
C#
1
public int Status {get; private set;} // 0 | 1 | 2
Добавлено через 1 минуту
Конвертация стринга в enum встроена в базовый конвертер.
А вот инт (и других целых), точно не уверен.
1
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
28.06.2022, 20:00  [ТС]
Элд Хасп, о, полезно.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16445 / 11288 / 2892
Регистрация: 21.04.2018
Сообщений: 33,185
Записей в блоге: 2
28.06.2022, 20:16
limeniye, посмотрел сейчас ваш Реп.
А почему у вас шаблон StateTextBox не в теме (Generic)?
Специально или не знаете, что дефолтные шаблоны нужно в тему записывать?
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
28.06.2022, 20:47  [ТС]
Элд Хасп, хм, ну а если у меня 200 элементов? Это около 30 000 строк? Как же я разбирусь потом.
Я просто указал пути к файлам дефолтных шаблонов:
XML
1
2
3
4
5
6
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/Meeting.Wpf.Controls;component/StateTextBox/StateTextBox.xaml"/>
        <ResourceDictionary Source="/Meeting.Wpf.Controls;component/PlaceholderTextBox/PlaceholderTextBox.xaml"/>
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
Как же это нужно было делать по-дургому?
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16445 / 11288 / 2892
Регистрация: 21.04.2018
Сообщений: 33,185
Записей в блоге: 2
28.06.2022, 20:59
Цитата Сообщение от limeniye Посмотреть сообщение
Как же это нужно было делать по-дургому?
Всё верно.
Я что-то сам не нашёл эту папку - не внимательность.
Думал, вы потом в App всё подтягиваете по аналогии с MD.
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
28.06.2022, 21:15  [ТС]
Элд Хасп, так подтягиваю же
https://github.com/LimeniyeCyb... pp.xaml#L9
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16445 / 11288 / 2892
Регистрация: 21.04.2018
Сообщений: 33,185
Записей в блоге: 2
28.06.2022, 21:18
Цитата Сообщение от limeniye Посмотреть сообщение
так подтягиваю же
Зачем?
Это же тема.
Стили из неё подтягиваются автоматически.

Добавлено через 1 минуту
А вот !
Понял почему я так подумал.
У вас же вроде нет статического конструктора который задаёт ключ дефолтного стиля!
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
28.06.2022, 21:20  [ТС]
Элд Хасп, ну если я удалю эту строку — у меня не будут видны котролы же

Добавлено через 1 минуту
Элд Хасп, такого?
https://github.com/LimeniyeCyb... ox.cs#L106
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16445 / 11288 / 2892
Регистрация: 21.04.2018
Сообщений: 33,185
Записей в блоге: 2
28.06.2022, 21:28
Вот такая фигня обязательно должна быть:
C#
1
2
3
4
5
6
7
8
   public class MyCustomControl : Button
   { 
    
      static MyCustomControl() 
      { 
         DefaultStyleKeyProperty.OverrideMetadata(typeof(MyCustomControl), new
            FrameworkPropertyMetadata(typeof(MyCustomControl))); 
       }
Добавлено через 35 секунд
Цитата Сообщение от limeniye Посмотреть сообщение
такого?
Да.
Вот его я не мог найти.

Добавлено через 2 минуты
Цитата Сообщение от limeniye Посмотреть сообщение
ну если я удалю эту строку — у меня не будут видны котролы же
Если всё правильно сделали, то тема устанавливается автоматически системой при запуске приложения.
Generic - это общая тема.
Вы можете создать другие темы Aero, День/Ночь и т.д.
И когда Система будет менять тему, то и стили для элементов будут подтягиваться из темы соответствующего названия.

Добавлено через 4 минуты
Что такого особенного в Generic.xaml?
0
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
28.06.2022, 22:40  [ТС]
Элд Хасп, если оно устанавливается автоматически, тогда строку с подключением Generic файла я могу удалить из App.xaml
https://github.com/LimeniyeCyb... pp.xaml#L9

Но если я её удаляю -- у меня не отображается элемент.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16445 / 11288 / 2892
Регистрация: 21.04.2018
Сообщений: 33,185
Записей в блоге: 2
29.06.2022, 10:18
Цитата Сообщение от limeniye Посмотреть сообщение
Но если я её удаляю -- у меня не отображается элемент.
Значит, что-то делаете неправильно.

В общем случае, CustomControl находится в отдельной сборке и тема с его шаблонами тоже находится в этой же сборке.
App, в принципе, понятия не имеет обо всём этом.

И это не "теоретические знания", а на практике я так постоянно делал.

Добавлено через 1 минуту
limeniye, возможно проблема в URL'ах ресурсных словарей.
Попробуйте шаблон переместить непосредственно в Generic.
Если всё заработает, значит нужно задавать полные URL для ресурсов подтягиваемых в Generic.
1
 Аватар для limeniye
1182 / 624 / 160
Регистрация: 19.04.2018
Сообщений: 2,923
29.06.2022, 11:32  [ТС]
Элд Хасп, мой проект был типа "Wpf.ClassLibrary". Пересоздал его на "Wpf.CustomControls" -- помогло.

Мне кажется, что дело в файле AssemblyInfo, ибо других отличий я не нашёл.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16445 / 11288 / 2892
Регистрация: 21.04.2018
Сообщений: 33,185
Записей в блоге: 2
29.06.2022, 11:41
Цитата Сообщение от limeniye Посмотреть сообщение
мой проект был типа "Wpf.ClassLibrary". Пересоздал его на "Wpf.CustomControls" -- помогло.
Ясно.
Там разные настройки проектов.
Не знаю точно какие именно.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.06.2022, 11:41

ReactiveUI уведомления и цепочки
Каким образом с помощью ReactiveUI сделать подобное? public string From { get; set;} public bool IsKit { get; set; } ...

Пример запроса reactiveui / refit
Может кто поделиться примером кода либы reactiveui / refit конкретнее нужен POST запрос с FormData


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

Или воспользуйтесь поиском по форуму:
54
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru