bworknowplease Ответов: 1

Как установить несколько значений свойств на основе значения другого свойства при его изменении?


Из того, что я прочитал, считается плохой практикой устанавливать другие значения свойств из другого свойства. Что мне нужно сделать, так это убедиться,что при изменении конкретного свойства изменяется и связанное с ним свойство, не меняя его.

Например, если бы у меня были следующие свойства:
private bool connected;
private bool disconnected;
private bool ready;
private bool noLiveCalls;

И я
noLiveCalls = false;

Мне нужно, чтобы были установлены следующие свойства
connected = true;
disconnected = false;
ready = false;

Если я поставлю
ready = true;

Тогда они также должны быть установлены
noLiveCalls = true;
connected = false;
disconnected = false;

Так что что-то вроде этого должно быть плохой практикой, однако я, кажется, не вижу другого способа обойти это.
private bool ready;

public bool Ready {
	get {
		return ready;
	}
	set {
		if (ready != value) {
			if (value)
			{
				noLiveCalls = true;
				connected = false;
				disconnected = false;
			}
				
			ready = value;
		}
	}
}


Так что же это плохая практика, и если есть какие-то предложения относительно того, как я могу справиться с ней по-другому?

Что я уже пробовал:

Я пробовал использовать events и propertychanged, но они, похоже, не то, что мне нужно, весь смысл в том, чтобы попытаться избежать необходимости управлять определенными свойствами индивидуально.
Я искал в codeproject и google, но не нашел того, что ищу, но, возможно, я неправильно формулирую поиск или использую неправильные ключевые слова. Мне действительно нужны свойства в других местах, чтобы проверить их значения по сравнению с другими, чтобы разрешить или предотвратить изменение другого свойства.

[no name]

"следующие свойства" - это не свойства, и я никогда не слышал, чтобы это была "плохая практика". Это делается постоянно.

bworknowplease

Спасибо, это делает меня счастливой.

1 Ответов

Рейтинг:
8

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Я справляюсь с такими ситуациями, как ты. Значит, все правильно. Не стоит беспокоиться.