@Wolfak

Как передать переменную на другую страницу WPF?

Добрый день. Столкнулся с новым глупым вопросом. Как можно передать переменную с одной страницы XAML на другую?
Обе страницы созданы средствами Visual Studio.
Page1
Page2.
Нужно передать переменную PreID.

Перехожу с первой на вторую страницу вот так:
private void pre1_Click(object sender, RoutedEventArgs e)
        {
            this.Content = new Page2();
        }


Спасибо за помощь. Новичок в c#, поэтому много глупых вопросов от меня =)
  • Вопрос задан
  • 4578 просмотров
Решения вопроса 1
newross
@newross
Product owner
Очень плохой вариант - через конструктор.
private void pre1_Click(object sender, RoutedEventArgs e)
        {
            this.Content = new Page2("переменная");
        }

Плохой вариант - через свойство.
private void pre1_Click(object sender, RoutedEventArgs e)
        {
            var page = new Page2();
            page.Variable = "переменная";
            this.Content = page;
        }

Человеческий вариант - через сервис, который подтягивается при помощи ioc-контейнера.
private void pre1_Click(object sender, RoutedEventArgs e)
        {
            _service.Variable = "переменная";
            this.Content = new Page2();
        }

Затем в Page2, например так
var service = _container.Resolve<IMyService>;
        Title = service.Variable;
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
yuvdev
@yuvdev
middle developer 6lvl
Изучайте сразу MVVM и будет вам счастье)
Ответ написан
Комментировать
@Sumor
Помимо перечисленного можно использовать NavigationService в приложении. И производить переключения страниц через него - методом Navigate. Автоматически вы получаете возможность хранения истории переходов с учётом всех параметров.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы