C# DataGrid-“数据网格”;双向绑定需要路径或XPath。”;
我想在DataGrid上显示我的对象数据库C# DataGrid-“数据网格”;双向绑定需要路径或XPath。”;,c#,wpf,xpath,datagrid,C#,Wpf,Xpath,Datagrid,我想在DataGrid上显示我的对象数据库 public class Student { public string Imie { get; set; } public string Nazwisko { get; set; } string Numer { get; set; } internal List<Telefon> Telefony { get; set; } internal Adres Adres { get; set; } } 感谢您的帮助。我怀疑Adres绑定
public class Student
{
public string Imie { get; set; }
public string Nazwisko { get; set; }
string Numer { get; set; }
internal List<Telefon> Telefony { get; set; }
internal Adres Adres { get; set; }
}
感谢您的帮助。我怀疑
Adres
绑定属性为null因此,当您尝试编辑绑定的列值binding=“{binding Adres.Ulica}”
时,它尝试为Adres.Ulica设置值,但Adres本身为null。因此,绑定在加载时以静默方式失败
您必须确保为所有绑定对象初始化
Adres
,以便可以从dataGrid编辑其子属性Ulica
的值。在视图模型中,Telefony
和Adres
属性都声明为内部。尝试将这些属性更改为public
。查证
您可以绑定到公共属性、子属性以及索引器
您还提到可以让Numer
工作,但在示例代码中,它似乎被声明为private
,这不是有效的绑定源。问题在于绑定成员名称中的。(点)。
请参阅:
<DataGrid Name="dataGrid" ItemsSource="{Binding Student}" AutoGenerateColumns="False" CellEditEnding="dataGrid_CellEditEnding" CurrentCellChanged="dataGrid_CurrentCellChanged" PreviewKeyDown="dataGrid_PreviewKeyDown">
<DataGrid.Columns>
<DataGridTextColumn Header="Imie" Binding="{Binding Imie}"/>
<DataGridTextColumn Header="Nazwisko" Binding="{Binding Nazwisko}"/>
<DataGridTextColumn Header="Numer" Binding="{Binding Numer}"/>
<DataGridTextColumn Header="Ulica" Binding="{Binding Adres.Ulica}"/>
<DataGridTextColumn Header="KodPocztowy" Binding="{Binding Adres.KodPocztowy}"/>
<DataGridTextColumn Header="Miasto" Binding="{Binding Adres.Miasto}"/>
<DataGridTextColumn Header="Tel. Numer" Binding="{Binding Telefon.Numer}"/>
<DataGridTextColumn Header="Tel. Operator" Binding="{Binding Telefon.Operator}"/>
</DataGrid.Columns>
</DataGrid>
InvalidOperationException was unhandled
Two-way binding requires Path or XPath.