2
TextBox 및 datarow 열을 바인딩하려고하지만 작동하지 않습니다. 내 코드 :WPF 코드에서 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의 컨텍스트에 존재하지 않게 됨) 바인딩의 컨텍스트가 사라진다는 것입니다. –
DataRow의 열 수가 다를 수 있으므로 XAML에서이 코드를 수행 할 수 없습니다. 내 루프가 일반적으로보다 복잡합니다. 만들고 텍스트 상자를 바인딩 한 후 표에 추가했습니다. 내 DataContext가 정확하고 Member가 인스턴스 변수입니다. 오류가 없습니다. 내 모든 텍스트 상자가 올바르게 표시됩니다. – user1829826