Binding WPF绑定问题
我的班级结构如下:Binding WPF绑定问题,binding,Binding,我的班级结构如下: public class Person { public PersonInfo Details { get; set; } public string Name { get; set; } } public class PersonInfo { public string Designation { get; set; } } 我正在尝试绑定2个文本框,如下所示: Person person = new Person(); textBox1.Da
public class Person
{
public PersonInfo Details { get; set; }
public string Name { get; set; }
}
public class PersonInfo
{
public string Designation { get; set; }
}
我正在尝试绑定2个文本框,如下所示:
Person person = new Person();
textBox1.DataContext = person;
textBox2.DataContext = person;
Binding textBox1Binding = new Binding()
{
Mode = BindingMode.OneWayToSource,
Path = new PropertyPath("Name"),
};
Binding textBox1Binding = new Binding()
{
Mode = BindingMode.OneWayToSource,
**Path = new PropertyPath("Details.Designation")** << problem is here
};
Person-Person=新的Person();
textBox1.DataContext=person;
textBox2.DataContext=person;
Binding textBox1Binding=新绑定()
{
模式=BindingMode.OneWayToSource,
路径=新属性路径(“名称”),
};
Binding textBox1Binding=新绑定()
{
模式=BindingMode.OneWayToSource,
**Path=new PropertyPath(“Details.Designation”)***这花了一些时间,但我想我有一个解决方案。您的PersonInfo对象本人不存在。我将您的代码修改为以下内容,现在它对我有效
public class Person
{
private PersonInfo pi;
public Person()
{
pi = new PersonInfo();
}
public PersonInfo Details
{
get
{
return pi;
}
set
{
pi = value;
}
}
public string Name { get; set; }
}
public class PersonInfo
{
public string Designation { get; set; }
}
在某处:
textBox1.DataContext = person;
textBox2.DataContext = person;
Binding textBox1Binding = new Binding()
{
Mode = BindingMode.OneWayToSource,
Path = new PropertyPath("Name"),
};
textBox1.SetBinding(TextBox.TextProperty, textBox1Binding);
Binding textBox2Binding = new Binding()
{
Mode = BindingMode.OneWayToSource,
Path = new PropertyPath("Details.Designation"),
};
textBox2.SetBinding(TextBox.TextProperty, textBox2Binding);
您能否确保您的子对象“PersonInfo”(通过属性指定)在绑定之前存在?这花了一些时间,但我想我有一个解决方案。您的PersonInfo对象本人不存在。我将您的代码修改为以下内容,现在它对我有效
public class Person
{
private PersonInfo pi;
public Person()
{
pi = new PersonInfo();
}
public PersonInfo Details
{
get
{
return pi;
}
set
{
pi = value;
}
}
public string Name { get; set; }
}
public class PersonInfo
{
public string Designation { get; set; }
}
在某处:
textBox1.DataContext = person;
textBox2.DataContext = person;
Binding textBox1Binding = new Binding()
{
Mode = BindingMode.OneWayToSource,
Path = new PropertyPath("Name"),
};
textBox1.SetBinding(TextBox.TextProperty, textBox1Binding);
Binding textBox2Binding = new Binding()
{
Mode = BindingMode.OneWayToSource,
Path = new PropertyPath("Details.Designation"),
};
textBox2.SetBinding(TextBox.TextProperty, textBox2Binding);
在绑定之前,能否确保子对象“PersonInfo”(通过属性指定)存在