【发布时间】:2012-11-17 18:20:39
【问题描述】:
我想绑定 TextBox 和 datarow 的列,但不起作用。 我的代码:
// Member is a DataRow
for(int i=0;i<Member.Table.Count;++i)
{
TextBox textbox = TextBox();
textbox.Text = Member.Field<string>(i);
Binding binding = new Binding(Member.Table.Columns[i].ColumnName);
binding.Source = Member;
binding.Path = new PropertyPath(Member.Table.Columns[i].ColumnName);
binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
binding.Mode = BindingMode.TwoWay;
textbox.SetBinding(System.Windows.Controls.TextBox.TextProperty, binding);
}
有什么想法吗? 认为
【问题讨论】:
-
你为什么用代码而不是 xaml 来做这个?
-
我写了一小段代码。但是我的文本框在我的窗口中显示得很好......
-
“不起作用”是什么意思?有错误吗?文本框不显示?数据不显示在文本框中吗?我猜问题是,一旦您离开那段代码,绑定的上下文就会消失(即,Member.Table 不再存在于正在运行的 XAML 的上下文中)。
-
我无法在 XAML 中执行此代码,因为 DataRow 中的列数可能不同。我的循环比通常更复杂。创建并绑定我的文本框后,我添加到网格中。我的 DataContext 是正确的,并且 Member 是一个实例变量。没有错误。我所有的文本框都正确显示
-
我的绑定文本框和DataRow的代码是否正确?