很抱歉这个基本问题
我有一个数据模型:
class data_test
{
public string textdata { get; set; }
public bool booldata { get; set; }
public bool checkdata { get; set; }
public data_opt enumdata { get; set; }
}
这是枚举:
enum data_opt
{
managed = 1,
unmanaged = 2 ,
mixed = 3
}
然后我创建一个数据模型:
var n_Data = new data_test()
{ textdata = "test data",
booldata = false,
checkdata = true ,
enumdata = data_opt.mixed
};
然后我根据后面的代码创建一个文本框:
var text_box = new TextBox();
现在我想将text_box.Text属性从后面的代码绑定到n_Data.textdata
DataGrid 的工作方式相同,双向连接具有实时更新。
我找到了一些页面:
Binding String Property in Code-Behind TextBlock
WPF Data Binding to a string property
Binding string property to object
不幸的是,它们都不对我有用,这是我要绑定的代码:
Binding binding = new Binding();
binding.Path = new PropertyPath("textdata");
binding.Source = n_Data;
text_box.SetBinding(TextBlock.TextProperty, binding);
我也尝试过:
Binding binding = new Binding();
binding.Path = new PropertyPath("textdata");
binding.Source = n_Data;
BindingOperations.SetBinding(text_box, TextBlock.TextProperty, binding);
他们两个都不起作用,我在做什么错了?
答案 0 :(得分:1)
由于目标是TextBox
,所以不能使用TextBlock.TextProperty
作为要绑定的属性。您需要使用TextBox.TextProperty
:
text_box.SetBinding(TextBox.TextProperty, binding);