Здравствуйте!
У меня возникла проблема "красивого" способа изменения настроек "на лету".
Наример:
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) или как-то так)
Я хотел чтобы можно было просто вызвать свойство и всё. А класс его описывающий самостоятельно получил бы вызывающий объект, запомнил, и при последующем изменении свойства, автоматически применил новое значение ко всем ранее вызывавшим это свойство объектам. Фух
Ответ
То, что вам нужно, называется "дата-биндинг" (data binding, по русски - привязка данных) и идет рука об руку с шаблоном проектирования MVVM (Model - View - View Model).
Для WinForms это делается через вкладку свойств, далее - пункт (ApplicationSettings) для привязки настроек или пункт (DataBindings) для привязки источника данных.
В WPF это делается через указание в разметке конструкции {Binding}
BorderThickness="{Binding BorderThickness, Source={x:Static Settings.Default}}"
Если вы используете не стандартный класс настроек, а пишите свой - не забудьте реализовать интерфейс INotifyPropertyChanged
Комментариев нет:
Отправить комментарий