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 と Entity Framework データベースを使用しています。親ナビゲーション プロパティを介して子詳細エンティティを編集するための正しいバインディング ステートメントはどれですか?

前もって感謝します。

ANSWER: Andrey の回答により、私は解決策にたどり着きました。テキスト ボックスを (子エンティティにバインドするのではなく) グリッドの 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 に答える