привязать элемент управления к свойству code-behind этого объекта - PullRequest
0 голосов
/ 07 января 2012

У меня есть свойство в классе с выделенным кодом, к которому я хочу привязать свой элемент управления Label:

    public MainWindow()
    {
        InitializeComponent();
        this.Label1Content = "some text";
    }

    public string Label1Content { get; set; }

Но привязка не удаетсяОчевидно, что я что-то упускаю в конфигурации привязки, но я не знаю что.Я знаю, как связать это свойство с помощью C #, но как мне связать его с помощью XAML и без объявления DataContext?

Ответы [ 2 ]

1 голос
/ 07 января 2012

Вы все равно должны объявить DataContext, даже если это тот же элемент управления:

public MainWindow()
{
    InitializeComponent();

    DataContext = this;

    this.Label1Content = "some text";
}

Кроме того, элемент управления должен реализовать INotifyPropertyChanged, чтобы вы могли вызвать событие PropertyChanged. Ваша собственность должна быть автономной, вот так:

public string _lable1Content;
public string Label1Content
{
    get { return _label1Content; }
    set
    {
        if (Equals(value, _label1Content)) return;

        _label1Content = value;

        //However you decide to implement the RaisePropertyChanged method.
    }
}
1 голос
/ 07 января 2012

Если вы не хотите нигде объявлять текстовый текст, вы можете использовать

<Label Content="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window}, Path=Label1Content}" />
...