Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Создание PropertyChanged свойств / 13 сообщений из 13, страница 1 из 1
13.09.2019, 14:20
    #39861550
Супер_Пав
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание PropertyChanged свойств
Коллеги, день добрый.

Задалбывает постоянно создавать шаблонные свойства типа:
Код: 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.
private string _propertyName;

public string PropertyName
{
    get { return _propertyName; }
    set
    {
        if (_propertyName!= value)
        {
            _propertyName = value;
            OnPropertyChanged(() => PropertyName);
        }
    }
}
// Или
public string PropertyName
{
    get { return Model.PropertyName; }
    set
    {
        if (Model.PropertyName != value)
        {
            Model.PropertyName = value;
            OnPropertyChanged(() => PropertyName);
        }
    }
}


Можно ли как-то упростить этот механизм? Просто когда большие модели, это сильно вымораживает. Поделитесь опытом, пожалуйста.
...
Рейтинг: 0 / 0
13.09.2019, 14:32
    #39861565
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание PropertyChanged свойств
сниппеты тебе в помощь!
...
Рейтинг: 0 / 0
13.09.2019, 14:33
    #39861567
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание PropertyChanged свойств
или обычные свойства типа
Код: c#
1.
public string PropertyName { get; set; }

ты тоже руками набиваешь?
...
Рейтинг: 0 / 0
13.09.2019, 15:13
    #39861603
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание PropertyChanged свойств
Shocker.Pro,

при нормальной скорости печати разница между снипитом и краткой формой свойства не сильно то большая.
вот propdp реально помогает, так как меня даже через снипет всё это вымораживает , так как наглядность кода ппц как страдает от такой монструозной конструкции
...
Рейтинг: 0 / 0
13.09.2019, 15:43
    #39861624
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание PropertyChanged свойств
Roman Mejtesтак как меня даже через снипет всё это вымораживает , так как наглядность кода ппц как страдает от такой монструозной конструкцииА я себе этот сниппет поправил, сделал так, что остается только первая строка с именем и типов свойства, а остальное прячется в регион.

Кстати, и для вышеуказанных notify-свойств то же самое.

В итоге по две строки на каждое свойство, вполне себе компактно смотрится
...
Рейтинг: 0 / 0
13.09.2019, 16:22
    #39861650
Супер_Пав
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание PropertyChanged свойств
Shocker.Proили обычные свойства типа
Код: c#
1.
public string PropertyName { get; set; }

ты тоже руками набиваешь?

Всё ручками, печатаю быстро, просто задалбывает однообразие
...
Рейтинг: 0 / 0
13.09.2019, 17:15
    #39861710
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание PropertyChanged свойств
GitHub - Fody/PropertyChanged , уже не раз же здесь про эту штуку вспоминали.
А я сам налисапедил себе базовый класс, при наследовании от которого INPC-свойства объявляются примерно так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
[DefaultValue(true)]
public bool ProtectEnter
{
  get => Get(() => ProtectEnter);
  set => Set(() => ProtectEnter, value);
}

[DefaultValue(true)]
public bool ProtectSettings
{
  get => Get(() => ProtectSettings);
  set => Set(() => ProtectSettings, value);
}

[DependsOn(nameof(ProtectEnter))]
[DependsOn(nameof(ProtectSettings))]
public bool ProtectionEnabled => ProtectEnter || ProtectSettings;

[DependsOn(ProtectionEnabled)]
public ICommand EnterCommand { get; }
...
Рейтинг: 0 / 0
13.09.2019, 17:30
    #39861721
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание PropertyChanged свойств
Сон Веры Павловны,

а мне так не нравится, код только усложняется, а не упрощается
...
Рейтинг: 0 / 0
13.09.2019, 17:32
    #39861724
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание PropertyChanged свойств
Roman MejtesСон Веры Павловны,

а мне так не нравится, код только усложняется, а не упрощается
Так - это как? С помощью Fody? Или моего велосипеда? И в чём сложность (в отличие от классического кода INPC-свойств)?
...
Рейтинг: 0 / 0
13.09.2019, 17:33
    #39861725
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание PropertyChanged свойств
Сон Веры ПавловныА я сам налисапедил себе базовый класс, при наследовании от которого INPC-свойства объявляются примерно так:ты практически заново придумал DependecyProperty )))
...
Рейтинг: 0 / 0
13.09.2019, 18:11
    #39861742
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание PropertyChanged свойств
Shocker.ProСон Веры ПавловныА я сам налисапедил себе базовый класс, при наследовании от которого INPC-свойства объявляются примерно так:ты практически заново придумал DependecyProperty )))
Да, я себя на такой мысли уже ловил )
...
Рейтинг: 0 / 0
13.09.2019, 18:14
    #39861743
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание PropertyChanged свойств
Сон Веры ПавловныShocker.Proпропущено...
ты практически заново придумал DependecyProperty )))
Да, я себя на такой мысли уже ловил )
И вот, кстати, закономерно вытекающий из этого факта вопрос: модель, у которой в иерархии наследования живёт DependencyObject - это нормально?
...
Рейтинг: 0 / 0
13.09.2019, 18:42
    #39861754
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание PropertyChanged свойств
Сон Веры ПавловныИ вот, кстати, закономерно вытекающий из этого факта вопрос: модель, у которой в иерархии наследования живёт DependencyObject - это нормально?модель чего? бизнес-логики - точно нет.
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Создание PropertyChanged свойств / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]