0

Дело в том, что мне нужен такой метод, чтобы при изменении данных в БД изменялся и сам макет страницы.

То есть я выбираю элемент для редактирования, далее изменяю его и сразу же возвращаюсь на ту страницу, где этот элемент выбрал. Но изменённых данных не вижу.

Вопрос в чём — какой есть виртуальный метод в WPF, чтобы при переопределении позволял мне настроить поведение немедленно до того, как макет загрузится.

Такой метод есть в Xamarin.Forms — OnAppearing, есть какая нибудь альтернатива такому методу в Wpf?

  • изменялся и сам макет страницы - небось все контролы через C# код рисуете, игнорируя XAML? В WPF проекте не должно быть такое, что вы, через событие грузите данные, это просто не задача UI. Ну и отрисовка разного содержимого тоже работает совсем иначе, достаточно указать тип и нужный вид через DataTemplate. – EvgeniyZ Feb 05 '22 at 09:52
  • Есть, собатие Loaded назыветя, но сколько себя помню, никогда его не использовал. Вот пример. – aepot Feb 05 '22 at 10:36
  • @EvgeniyZ

    С чего вы взяли, что у меня вёрстка построена на C#?

    Список элементов, который выводится на страницу как раз таки и выдается в виде DataTemplate.

    – eduard.working Feb 05 '22 at 21:32
  • То, что у вас та есть, мне как бы неизвестно, я лишь опираюсь на то, что вижу, ну а вижу я: мне нужен метод, чтобы при изменении в БД изменялся и макет страницы. То есть, по моей логике, вы по событию рисуете заново все контроллы, а так, как вы новичок в программировании, (да и судя по предыдущим вопросам в IT сфере в целом), вы, скорей всего, работаете в WPF, как на WinForms, где делаете = new Button();, всякие myTextBox.Text = "Text"; и так далее. Не, если это не так, молодцы, хвалю, я лишь гадаю по той кофейной гуще, что вы предоставили, не более. – EvgeniyZ Feb 05 '22 at 22:01
  • @EvgeniyZ Нет дело не в вёрстке, с ней всё в порядке. Дело в том, что я возвращаюсь на страницу с методом GoBack(), который подразумевает из себя — вернуться на ту же страницу, не обновлённую а-ля закэшированную. Да, есть вариант загрузить эту страницу и всё будет Окей. Но вопрос в том, есть ли метод в WPF, похожий на OnAppearing() в Xamarin.Forms, который смог бы сначала загружать данные и только потом выводить сам макет? – eduard.working Feb 06 '22 at 10:17
  • GoBack(), Frame используете? Ну, тоже такой себе вариант (почему, пояснял тут). В нормальном WPF проекте должно быть так, что UI не знает что-либо про данные, он должен быть самостоятельным, независимым, с одной точкой входа (Не в XAML!), ну и с возможностью в коде указать не UI, а простой класс страницы. Вот имея все это, вы уже сможете спокойно оперировать всем необходимым самостоятельно, пересоздавая объекты, когда надо, либо использовать ранее созданные. – EvgeniyZ Feb 06 '22 at 10:31
  • Ну а событие, вам ведь уже сказали выше, 2-ым комментарием. Хотите чтот сделать при загрузки страницы - Loaded, но опять же, вы не должны вообще хотеть этого сделать в WPF проекте. – EvgeniyZ Feb 06 '22 at 10:33
  • @EvgeniyZ, Спасибо большое, всё понял! – eduard.working Feb 08 '22 at 07:21

0 Answers0