我的 RadGridView 通过父实体的导航属性绑定到子记录。用户可以在网格中编辑记录。现在我还想允许在网格之外编辑子记录。在网格中选择记录后,您可以使用文本框对其进行编辑。我似乎无法为每个文本框找到正确的绑定语句。我的工作子网格 XAML 看起来像这样:
<telerik:RadGridView Name="childGrid" ItemsSource="{Binding ChildEntitiesNav, Mode=TwoWay}" IsSynchronizedWithCurrentItem="True" AutoGenerateColumns="False">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn DataMemberBinding="{Binding ChildFieldOne}" Header="Child Field One"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding ChildFieldTwo}" Header="Child Field Two" />
我添加了与每个网格列对应的文本框,但我无法显示任何数据。我试过这些文本框绑定语句:
Text="{Binding Path=ChildEntitiesNav.ChildFieldOne}
和Text="{Binding Path=ChildFieldOne}
我首先使用 WPF 和实体框架数据库。通过父导航属性编辑子详细信息实体的正确绑定语句是什么?
提前致谢。
回答:安德烈的回答让我找到了解决方案。我只需要将我的文本框绑定到网格的 SelectedItem(而不是绑定到子实体)。我将网格名称作为 DataContext 添加到我的文本框中:
<TextBox Name="ChildFieldTextBox" Text="{Binding Path=ChildFieldName, Mode=TwoWay, ValidatesOnExceptions=true, NotifyOnValidationError=true}" DataContext="{Binding ElementName=childGrid, Path=SelectedItem, Mode=TwoWay}" />
这些链接有帮助: