Ну, это зависит от того, что вы хотите сделать.В вашем случае, похоже, у вас есть свойство «Рабочая область», которое указывает, на какую виртуальную машину вы должны смотреть.Это не кажется слишком плохим для использования IMHO.
Если вы делали что-то совершенно не связанное с измененным свойством, это могло бы сработать, но это, конечно, не то, что я ожидал бы сделать (см. принцип наименьшего удивления ).OnPropertyChanged предназначен для указания того, что свойство, к которому привязана привязка, изменилось и должно быть повторно получено.
Конечно, вы можете просто создать другое событие в вашей ViewModel, например:
public event Action<String> OpenStrategy;
Еще одна вещь ... Этот код полностью избыточен:
const string openStrategyString = "OpenStrategy";
if (e.PropertyName == openStrategyString)
следующее с точки зрения компилятора точно такое же и гораздо более читаемое:
if (e.PropertyName == "OpenStrategy")