我想在 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; }
}
在 地址 和 电话 类我显然有一些额外的领域。
我的 XAML:
<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>
我可以轻松获取和设置爱美 , 纳兹维斯科和 号码 字段,但是当我尝试设置 的值时乌利卡 ( Adres 类中的字段)编译器给了我这个异常:
InvalidOperationException was unhandled
Two-way binding requires Path or XPath.
感谢帮助。
最佳答案
我怀疑 Adres
绑定(bind)属性为空 因此,当您尝试编辑绑定(bind)的列值时 Binding="{Binding Adres.Ulica}"
,它尝试为 Adres.Ulica 设置值,但 Adres 本身为空。因此,绑定(bind)在加载时静默失败。
您必须 确保 Adres
为所有绑定(bind)对象初始化 这样您就可以编辑其子属性的值 Ulica
来自数据网格。
关于c# - 数据网格 - "Two-way binding requires Path or XPath.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22595101/