Как привязать к текстовому полю - PullRequest
1 голос
/ 08 февраля 2010

мой XAML

<TextBox Name="DutchName" HorizontalAlignment="Right" Text="{Binding customer,Path=DutchName }" />

мой класс

class customer
{
    Name name;
}

class Name
{
    string DutchName;
    string EnglishName;
}

TextBox не связан. Кто-нибудь может исправить эту ошибку, пожалуйста?

Спасибо

1 Ответ

5 голосов
/ 08 февраля 2010

Не думаю, что ваш код будет компилироваться для начала,

должно быть

public class customer
{
    public Name name { get; set; }
}

public class Name
{
    public string DutchName { get; set; }
    public string EnglishName { get; set; }
}

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

  • Свойства
  • Средства доступа (общедоступные, частные, защищенный, внутренний) - невозможно связать с частной собственностью
  • INotifyPropertyChanged

Ваша привязка xaml должна выглядеть следующим образом

<TextBox  HorizontalAlignment="Right" Text="{Binding Path=name.DutchName }" />

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

....
InitializeComponent();

customer cust = new customer();
cust.Name = new Name { DutchName = "Sigfried", EnglishName = "Roy" };
this.DataContext = cust;
....
...