Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataGrid-“数据网格”;双向绑定需要路径或XPath。”;_C#_Wpf_Xpath_Datagrid - Fatal编程技术网

C# DataGrid-“数据网格”;双向绑定需要路径或XPath。”;

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绑定

我想在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
绑定属性为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.