Я хочу упростить объявления свойств в моих классах. Проблема заключается в определении геттера и сеттера. Я делаю то же самое для сотен свойств. Все свойства создаются именно так, где метод «LogPropertyChanged» также RaisePropertyChange.Упростить объекты mvvm WPF
public class PCS_MA_V1_ALARMSTAT : ViewModelBase
{
private Boolean _ActionAlarmHighHigh;
public Boolean ActionAlarmHighHigh
{
get
{
return _ActionAlarmHighHigh;
}
set
{
if(value!= _ActionAlarmHighHigh)
{
_ActionAlarmHighHigh = value;
LogpropertyChanged("ActionAlarmHighHigh", oldVal, newVal);
}
}
}
private Boolean _ActionAlarmLowLow;
public Boolean ActionAlarmLowLow
{
get
{
return _ActionAlarmLowLow;
}
set
{
if(value!= _ActionAlarmLowLow)
{
_ActionAlarmLowLow = value;
LogpropertyChanged("ActionAlarmLowLow", oldVal, newVal);
}
}
}
}
Теперь я думаю, что этот синтаксис очень сложный, и огромный хайл для работы. Есть ли способ, которым я мог бы создать такой класс:
public class PCS_MA_V1_ALARMSTAT: ViewModelBase
{
public Boolean ActionAlarmHighHigh { get; set; }
public Boolean ActionAlarmLowLow { get; set; }
}
И затем следить за экземпляром. Если свойство изменилось, я запустил LogPropertyChanged в этом конкретном свойстве. Это возможно?
Ты второй, кто задал этот вопрос сегодня. Ответ «нет» для вас тоже. То, что люди делают * здесь, записывает 'SetProperty (ref T свойствоField, [CallerMemberName] String propName = null)' метод, который устанавливает поле и вызывает значение «PropertyChanged», если значение изменилось, и оно также может регистрироваться. Кстати, я бы, по крайней мере, переименовал 'LogpropertyChanged' в то, что не означает, что он MERELY делает запись. Неплохая идея для метода, но очень вводящее в заблуждение имя. –
И затем [написать фрагмент] (https://swissarmycrowbar.wordpress.com/2016/07/19/viewmodel-property-snippets-c6/), чтобы создать определения свойств, если вы используете Visual Studio. –
@EdPlunkett У меня уже создана программа, которая генерирует эти классы. Он создает тысячи строк. Проблема в том, что теперь я должен также поддерживать это приложение ...;) Если у вас есть время, я бы много ответил на ваш ответ в коде. Я не уверен, как реализовать его с вами. – Snovva1