Как передать переменную на другую страницу WPF?
Очень плохой вариант - через конструктор.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;
Помимо перечисленного можно использовать NavigationService в приложении. И производить переключения страниц через него - методом Navigate. Автоматически вы получаете возможность хранения истории переходов с учётом всех параметров.