Форум программистов, компьютерный форум, киберфорум
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. Показов 3464. Ответов 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
 Аватар для Элд Хасп
16165 / 11285 / 2892
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
 Аватар для Элд Хасп
16165 / 11285 / 2892
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
 Аватар для Элд Хасп
16165 / 11285 / 2892
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
 Аватар для Элд Хасп
16165 / 11285 / 2892
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
 Аватар для Элд Хасп
16165 / 11285 / 2892
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
 Аватар для Элд Хасп
16165 / 11285 / 2892
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
 Аватар для Элд Хасп
16165 / 11285 / 2892
Регистрация: 21.04.2018
Сообщений: 33,174
Записей в блоге: 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
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru