如何绑定到文本框

时间:2010-02-08 05:01:15

标签: c# wpf data-binding .net-3.5 textbox

我的XAML是

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

我的班级是

class customer
{
    Name name;
}

class Name
{
    string DutchName;
    string EnglishName;
}

TextBox未绑定。 任何人都可以纠正这个错误吗?

谢谢,

1 个答案:

答案 0 :(得分:5)

我认为你的代码不会为初学者编译,

应该是

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

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

这将使您能够一次设置来自xaml的属性,但是如果您在代码中设置属性,则需要实现INotifyPropertyChanged(否则您的用户界面不会知道)。从你的问题我认为你需要做更多的研究。了解这些主题。 (开头)

  • 属性
  • 访客(公共,私人, protected,internal) - 你不能绑定到非公共财产
  • INotifyPropertyChanged的

你的xaml绑定应该如下所示

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

如果您将正在工作的窗口/用户控件的数据上下文设置为客户。 e.g。

....
InitializeComponent();

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