Зачем источнику привязки данных нужен явный получатель? - PullRequest
1 голос
/ 13 февраля 2012

Если я не добавлю явные методы доступа к свойству String, привязка данных не будет работать.Это почему?Вот простой пример, где текстовое поле подключено к свойству String.

MainPage.xaml:

<Grid Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <TextBlock Text="{Binding Message} />
</Grid>

И код позади:

public String Message;

public MainPage()
{
    InitializeComponent();
    Message = "Hello World";
    DataContext = this;
}

Это не работает, текстовое поле пусто.

Однако добавьте методы доступа к свойствам;

public String Message { get; set; };

И теперь это работает.

Я не вижу объяснения в Привязка данных MSDN .Может кто-нибудь объяснить это?Разве свойства не имеют влияния установить / получить аксессоры?Тем не менее, почему привязка данных не может просто получить доступ к свойству?

Спасибо,

Ответы [ 3 ]

3 голосов
/ 13 февраля 2012
public String Message;

Это поле, а не свойство.Добавление геттеров и сеттеров создает свойство auto.Только свойства могут быть связаны с.

2 голосов
/ 13 февраля 2012

public String Message; - это поле, а не свойство.
Привязка данных работает только со свойствами.

2 голосов
/ 13 февраля 2012

{ get; set; } - это то, что заставляет компилятор генерировать эти неявные методы доступа.Если вы пропустите это, вы создаете не свойство вообще, а простое поле.

Я не настолько увлечен XAML, поэтому не могу сказать наверняка, но, возможно, это просто• поддерживает привязку к простым полям.

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