Первое изменение, которое я хотел бы сделать, это вырезать повторяющийся код.Например, все ваши установщики свойств делают одно и то же, но с разными переменными:
set
{
if (value.Equals(<VARIABLE_NAME>))
return;
<VARIABLE_NAME> = value;
NotifyPropertyChanged();
}
Вы можете превратить это в метод и заменить все ваши установщики на него:
set { SetProperty(ref <VARIABLE_NAME>, value); }
...
void SetProperty<T>(ref T variable, T value)
{
if (value.Equals(variable))
return;
variable = value;
NotifyPropertyChanged();
}
Затем вы можете использовать этот метод для обновления любого свойства, и это сделает ваш код более лаконичным, более управляемым и более читабельным.
Если вы пытаетесь отобразить правильное сообщение с учетом определенных критериев, ябудет использовать enum
s с соответствующими именами, чтобы определить сообщение, которое вы хотите отобразить, и условный оператор switch/case
:
enum DisplayMessageEnum
{
Success,
NetworkConnectionFail,
NetworkTimeout,
InvalidCredentials,
// Repeat as necessary
}
String _displayMessage = "Success";
public String DisplayMessage
{
get => _displayMessage;
get => SetProperty(ref _displayMessage, value);
}
...
void SetDisplayMessage(DisplayMessageEnum displayMessage)
{
switch (displayMessage)
{
case DisplayMessageEnum.Success:
DisplayMessage = "Success";
break;
case DisplayMessageEnum.NetworkConnectionFail:
DisplayMessage = "Network connection failed.";
break;
// Repeat for all enum values.
}
}