Задать вопрос
@hardworkerIT

Как изменить public переменную из другой страницы (WPF)?

Здравствуйте.
Есть одно окно (MainWindow) и несколько страниц которые отображаются в одном окне.
В основном окне объявил переменную
public int savesass = 0;

В другом окне считываю данную переменную так(Вывод в textbox):
MainWindow mmm = new MainWindow();
texttext.Text = mmm.savesass.ToString();

Но как изменить значение данной переменной?
Таким способом не работает:
MainWindow mmm = new MainWindow();
mmm.savesass = 5;

Может я что-то делаю не правильно? Тогда каким способом сделать одни переменные на все страницы, которые еще и можно будет изменять?
Спасибо огромное за помощь!
  • Вопрос задан
  • 1767 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • OTUS
    C# Developer. Professional
    6 месяцев
    Далее
  • Ulearn.me
    Основы программирования на примере C#. Часть 1
    1 неделя
    Далее
  • Software-testing.ru
    Программирование на C# для тестировщиков
    10 недель
    Далее
Решения вопроса 1
Оператор new, почитайте.
Вы создаете новый экземпляр, и изменяете или читаете значение только в нем.

Модификатор static.
Позволит сделать объект в единственном экземпляре и разделяемым.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
artem_b89
@artem_b89
Сетевой бездельник
Оператор new создаёт новый экземпляр класса. Советую взять книжку по программированию на C# и прочитать, а лучше даже две:
Сначала www.ozon.ru/context/detail/id/3658608
Потом www.ozon.ru/context/detail/id/21236101

По поводу вашего вопроса, уже отвечал: Использовать статический класс или синглтон.
Вот пример синглтона:
public class CurrentContext
    {
        private CurrentContext()
        {
            
        }
        
        private static Lazy<CurrentContext> instance = new Lazy<CurrentContext>(() => new CurrentContext());
        
        public static CurrentContext Instance
        {
            get { return instance.Value; }
        }
        
        public string Text {get;set;}
    }

Теперь к свойству Text можно обращаться, например так:
CurrentContext.Instance.Text="тест";

Вот еще пример приложения : https://dl.dropboxusercontent.com/u/18441732/test/...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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