Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
17.11.2021, 14:13
|
|||
---|---|---|---|
|
|||
MediatR vs Reactive? |
|||
#18+
Есть старое развесистое WinForms приложение, надо сделать в нем что-то типа: в форме Settings изменили установки и другие формы, в которых эти установки используются отреагировали. Оставим пока невозможность всегда реагировать без рестарта и т.д., предположим всегда можно. Хотел использовать Reactive , но подумал, что можно MediatR notifications. Подскажите, возможно ли использовать MediatR notifications, будет ли это проще? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2021, 17:49
|
|||
---|---|---|---|
|
|||
MediatR vs Reactive? |
|||
#18+
Ролг Хупин Хотел использовать Reactive , но подумал, что можно MediatR notifications. Хочется чего-то стильного-модного-молодежного? INotifyPropertyChanged (который автоматом имплементится теми же стандартными настройками) уже не? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2021, 18:29
|
|||
---|---|---|---|
|
|||
MediatR vs Reactive? |
|||
#18+
Сон Веры Павловны Ролг Хупин Хотел использовать Reactive , но подумал, что можно MediatR notifications. Хочется чего-то стильного-модного-молодежного? INotifyPropertyChanged (который автоматом имплементится теми же стандартными настройками) уже не? я первый раз в большом городе(ц), совсем не хочется с-м-м, но хочется чего-то, с помощью чего можно на изменение в одной форме (проперти) отреагировать в другой форме. Как это сделать ? при помощи чего? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.11.2021, 22:00
|
|||
---|---|---|---|
MediatR vs Reactive? |
|||
#18+
Ролг Хупин, чем обычные события не устраивают? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.11.2021, 06:53
|
|||
---|---|---|---|
|
|||
MediatR vs Reactive? |
|||
#18+
Ролг Хупин с помощью чего можно на изменение в одной форме (проперти) отреагировать в другой форме. Как это сделать ? при помощи чего? Так выше ж написано - стандартный интерфейс INotifyPropertyChanged . Вполне позволяет реагировать на изменения и без рестарта. Стандартные настройки .Net (те, которые в .settings-файлах, которые унаследованные от ApplicationSettingsBase) автоматически из коробки реализуют этот интерфейс, и всё, что нужно - подписаться на событие PropertyChanged от этого интерфейса. Или использовать DataBinding - в винформс он тоже вполне есть (конечно, до WPF-ных бинднигов ему как до луны пешком, но пользоваться вполне можно, причем и в двунаправленном режиме тоже, и даже конвертеры поддерживаются). В этом случае подписка на событие делается автоматически внутренними механизмами биндинга (не знаю, как в винформс, а в WPF при этом делается weak event subscription, т.е. можно даже не заморачиваться с вопросом отписки для корректного захоронения подписанного объекта). P.S. В тексте по данной выше ссылке не описан нюанс: если у экземпляра PropertyChangedEventArgs свойство PropertyName=null или string.Empty, то это означает, что изменились все обозреваемые свойства класса. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.11.2021, 10:49
|
|||
---|---|---|---|
MediatR vs Reactive? |
|||
#18+
vb_sub Ролг Хупин, чем обычные события не устраивают? +1 Просто создаёте event и подписываете на него "другие формы". Работает быстро, дёшево и сердито. Good luck! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.11.2021, 11:17
|
|||
---|---|---|---|
|
|||
MediatR vs Reactive? |
|||
#18+
Сон Веры Павловны Ролг Хупин с помощью чего можно на изменение в одной форме (проперти) отреагировать в другой форме. Как это сделать ? при помощи чего? Так выше ж написано - стандартный интерфейс INotifyPropertyChanged . Вполне позволяет реагировать на изменения и без рестарта. Стандартные настройки .Net (те, которые в .settings-файлах, которые унаследованные от ApplicationSettingsBase) автоматически из коробки реализуют этот интерфейс, и всё, что нужно - подписаться на событие PropertyChanged от этого интерфейса. Или использовать DataBinding - в винформс он тоже вполне есть (конечно, до WPF-ных бинднигов ему как до луны пешком, но пользоваться вполне можно, причем и в двунаправленном режиме тоже, и даже конвертеры поддерживаются). В этом случае подписка на событие делается автоматически внутренними механизмами биндинга (не знаю, как в винформс, а в WPF при этом делается weak event subscription, т.е. можно даже не заморачиваться с вопросом отписки для корректного захоронения подписанного объекта). P.S. В тексте по данной выше ссылке не описан нюанс: если у экземпляра PropertyChangedEventArgs свойство PropertyName=null или string.Empty, то это означает, что изменились все обозреваемые свойства класса. Хорошо, а если это самописные установки? WPF там и рядом не валялось, там совсем legacy ВинФормс приложение. Т.е. читается, скажем, хмл файл, десериализуется, показывается в пропертигиде, юзер меняет какие-то его части, они сохраняются (сериализуются) в хмл файл обратно. Или в друом случае - в форме отмечается безобидная птичка, на которую над изменить реакцию в других формах, строгая злая птица там. В этих случаях как реагировать? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
18.11.2021, 12:28
|
|||
---|---|---|---|
|
|||
MediatR vs Reactive? |
|||
#18+
Ролг Хупин Хорошо, а если это самописные установки? Ну а какая разница, самописные, или нет. Получаете доступ к инстансу класса настроек любым доступным образом в зависимости от реализации - мож он у вас синглтон, может, через DI впихивается, или задается явным параметром в каком-нибудь методе или конструкторе. Подписываетесь на его событие PropertyChanged. В хэндлере события производите нужные вам действия. Что тут может быть проблемой - не понимаю. Пример, как производится реализация INotifyPropertyChanged, дан выше, хотя вариантов таких реализаций очень много (можно, например, вообще ко всем public свойствам автоматом прикрутить возбуждение PropertyChanged с помощью Fody.PropertyChanged ). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
Start [/forum/topic.php?fid=20&mobile=1&tid=1398206]: |
0ms |
get settings: |
17ms |
get forum list: |
7ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
24ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
159ms |
get tp. blocked users: |
1ms |
others: | 5ms |
total: | 222ms |
0 / 0 |