Привязать атрибут управления к свойству объекта в XAML - PullRequest
0 голосов
/ 10 декабря 2010

Как связать атрибут элемента управления WPF с объектом, который я создал в коде?

Например, скажем, у меня есть этот фрагмент XAML:

<TextBlock Text="(title name here)"/>

иУ меня есть этот класс в C #:

public class Article
{
    public string Title { get; set; }
    public DateTime Published { get; set; }
    public string Body { get; set; }
}

, и у меня есть объект:

Article a = new Article();
a.Title = "Foo";

По сути, как я могу сделать так, чтобы TextBlock всегда отображал любой установленный a.Title?

Если это поможет (возможно, есть лучший способ сделать это), в моем примере у меня есть окно со списком статей и разделом с подробным описанием статьи.Когда я выбираю статью, я хочу заполнить раздел подробностей.

Ответы [ 2 ]

4 голосов
/ 10 декабря 2010

Используйте следующее:

<TextBlock Text="{Binding Title}" />

Предполагается, что для DataContext для элемента TextBlock задан экземпляр вашего типа Article.Однако, как правило, вы должны стремиться использовать MVVM, и в этом случае DataContext вашего представления будет вашей соответствующей моделью представления, и в этом случае у вас может быть свойство в вашей модели представления, которое имеет тип Article.Тогда вашим выражением связывания будет {Binding MyArticleProperty.Title}.

Чтобы пользовательский интерфейс обновлялся при изменении значения этого свойства в коде, необходимо аннулировать привязку, используя свойства зависимостей или реализуя INotifyPropertyChanged в модели представления.

3 голосов
/ 10 декабря 2010

Вам необходимо использовать Binding, например:

<TextBlock Text="{Binding ArticleProp.Title}"/>

Предполагая, что у вас есть ArticleProp Свойство типа Article в DataContext объекта XAML.

Есливы хотите, чтобы TextBlock автоматически обновлялся, вам также нужно заставить Article реализовать INotifyPropertyChanged.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...