1

我的 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}"  />

这些链接有帮助:

这里这里。

4

1 回答 1

0

是一篇可能对您有所帮助的文章。它描述了如何将控件绑定到 DataGrid 的选定项的属性。

或者您可以将SelectedChildEntityNav属性添加到您的 ViewModel。RadGridView 声明将如下所示:

<telerik:RadGridView Name="childGrid" IsSynchronizedWithCurrentItem="True" AutoGenerateColumns="False"
ItemsSource="{Binding ChildEntitiesNav, Mode=TwoWay}"
SelectedItem="{Binding SelectedChildEntityNav, Mode=TwoWay}">

之后,您可以将文本框绑定到SelectedChildEntityNav的属性。

于 2013-01-30T10:53:33.053 回答