我的RadGridView通过父实体的navigation属性绑定到子记录。用户可以编辑网格中的记录。现在我还想允许编辑网格外的子记录。在网格中选择记录后,您可以使用文本框对其进行编辑。我似乎无法为每个文本框找到正确的绑定语句。我的工作孩子网格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和Entity Framework数据库。 通过父导航属性编辑子详细信息实体的正确绑定语句是什么?
提前致谢。
答案:安德烈的回应让我找到了解决方案。我只需要将我的文本框绑定到网格的SelectedItem(而不是绑定到子实体)。我将网格名称作为DataContext添加到我的文本框中:
<TextBox Name="ChildFieldTextBox" Text="{Binding Path=ChildFieldName, Mode=TwoWay, ValidatesOnExceptions=true, NotifyOnValidationError=true}" DataContext="{Binding ElementName=childGrid, Path=SelectedItem, Mode=TwoWay}" />
这些链接有助于:
答案 0 :(得分:0)
Here是一篇可以帮助您的文章。它描述了如何将控件绑定到DataGrid所选项的属性。
或者您可以将SelectedChildEntityNav
属性添加到ViewModel。 RadGridView声明如下所示:
<telerik:RadGridView Name="childGrid" IsSynchronizedWithCurrentItem="True" AutoGenerateColumns="False"
ItemsSource="{Binding ChildEntitiesNav, Mode=TwoWay}"
SelectedItem="{Binding SelectedChildEntityNav, Mode=TwoWay}">
之后,您就可以将文本框绑定到SelectedChildEntityNav
的属性。