#c_sharp #wpf
Здравствуйте! У меня возникла проблема "красивого" способа изменения настроек "на лету". Наример: private string _text; public string SampleTextProp { get { return _text; } set { _text = value; } } textBlock1.Text = SampleTextProp; И вопрос: Есть ли возможность внутри геттера SampleTextProp получить объект textBlock1.Text, чтобы позже использовать его? В сеттере например. То есть мне нужно получить объект, который вызвал геттер. Надеюсь я понятно выразился... Спасибо большое! Update: Для чего мне это нужно. Есть класс хранящий в себе настройки для приложения представленные как свойства. По мере написания программы я применяю эти свойства к различным полям или свойствам других объектов. Но эти настройки будут применяться только при запуске программы, а мне надо видеть изменения во время исполнения. В тоже время я не хочу вручную связывать настройку и объект применяющий её (windowBorder.BorderThickness = Settings.Interface.BorderThickness.GetValue(windowBorder) или как-то так) Я хотел чтобы можно было просто вызвать свойство и всё. А класс его описывающий самостоятельно получил бы вызывающий объект, запомнил, и при последующем изменении свойства, автоматически применил новое значение ко всем ранее вызывавшим это свойство объектам. Фух
Ответы
Ответ 1
То, что вам нужно, называется "дата-биндинг" (data binding, по русски - привязка данных) и идет рука об руку с шаблоном проектирования MVVM (Model - View - View Model). Для WinForms это делается через вкладку свойств, далее - пункт (ApplicationSettings) для привязки настроек или пункт (DataBindings) для привязки источника данных. В WPF это делается через указание в разметке конструкции {Binding}: BorderThickness="{Binding BorderThickness, Source={x:Static Settings.Default}}" Если вы используете не стандартный класс настроек, а пишите свой - не забудьте реализовать интерфейс INotifyPropertyChangedОтвет 2
Нет. Никак нельзя. При присвоении значения в любую пропертю ты передаешь ЛИШЬ значение проперти. Но ты можешь написать метод который бы сразу обьект и из него доставал бы текст,если для тебя это важно.
Комментариев нет:
Отправить комментарий