DataGrid – “双向绑定需要Path或XPath。”

我想在DataGrid上显示我的对象数据库

public class Student { public string Imie { get; set; } public string Nazwisko { get; set; } string Numer { get; set; } internal List Telefony { get; set; } internal Adres Adres { get; set; } } 

AdresTelefon课程中,我显然有一些额外的领域。

我的XAML:

             

我可以很容易地设置ImieNazwiskoNumer字段但是当我试图设置Ulica的值( Adres类中的字段)编译器给我这个例外:

 InvalidOperationException was unhandled Two-way binding requires Path or XPath. 

感谢帮助。

我怀疑Adres绑定属性为null所以当您尝试编辑绑定Binding="{Binding Adres.Ulica}"的列值时,它会尝试为Adres.Ulica设置值,但Adres本身为null。 因此绑定在加载时无声地失败。

您必须确保为所有绑定对象初始化Adres,以便您可以从dataGrid编辑其子属性Ulica的值。

在您的视图模型中, TelefonyTelefony属性都声明为internal属性。 尝试将这些属性更改为public 。 检查绑定源类型

您可以绑定到公共属性 ,子属性以及索引器

你还提到过你可以让Numer工作但是在示例代码中它似乎被声明为private ,它不是有效的绑定源。

问题是由于绑定成员名称中的。(点)。 请参阅: 在C#/ WPF中绑定到包含DataTable中句点的字段