@Wolfak

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

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

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

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

Может я что-то делаю не правильно? Тогда каким способом сделать одни переменные на все страницы, которые еще и можно будет изменять?
Спасибо огромное за помощь!
  • Вопрос задан
  • 1694 просмотра
Решения вопроса 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/...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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