Уведомление об изменении в классе

262
21 сентября 2017, 13:20

Здравствуйте! При создании приложения в WPF у меня возникла одна проблема, а именно: по нажатию клавиши Edit в главном окне MainWindow я хочу менять свойство IsReadOnly всех компонентов в текущей открытой странице (т.e каким-нибудь образом отловить это событие внутри нашего класса наследованного от Page (сама Page отображается внутри )). И отсюда следует сам вопрос: как оповестить один класс (наш Page) о каких-то изменениях в другом классе (наш MainWindow)? Была идея как-то отловить изменение поля которое будет отражать текущее положение кнопки Edit, однако не знаю, как это сделать. Или же хотел бы узнать другой способ как вообще можно обратиться к полю нашего Page внутри MainWindow?

Answer 1

Ну вызвать из одного метода метод другого класса можно либо создав объект этого класса, либо объявить такой метод статическим. По-другому вроде никак, если я правильно понял вопрос.

Answer 2

Добавьте подписку на событие об изменении в Page классе.
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/event

В Вашем случаи это будет в Page

public event Action SomethingChanged = delegate{} //можете использовать EventHandler если нужно что-то еще передать в параметрах.

и в другом классе при его инициализации вы можете подписаться на это событие

myPage.SomethingChanged += MyMehotd();//тут логика для обработки изменений в стороннем классе.

Дальше пока не могу ничего порекомендовать, так как вся логика мне не ясна.

READ ALSO
Как решить задачку на c#?

Как решить задачку на c#?

Подскажите как решить задачку:

324
Через vk.net не могу получить источник фотографии

Через vk.net не могу получить источник фотографии

Пишу бота, переводящего текст+картинку из вк в пост на телеграф

301
Как обезопасить запуск приложения?

Как обезопасить запуск приложения?

Подскажите, каким способом можно обезопасить запуск приложения, если оно использует консольные команды и аргументы, через планировщик заданий

279
как сохранять данные в C#

как сохранять данные в C#

Как сохранять данные в программе? Например, если у меня консольное приложение и я собираюсь считать свой бюджет и каждый раз, открывая программу...

477