2

ユーザーが WPF ウィンドウで選択できるコンボボックスの選択肢がいくつかあります。これらの各コンボ ボックスは、EDMX を介して異なるテーブルにバインドされます。コンボは互いにバインドしません。

マスター/詳細機能を探しています。ユーザーがコンボボックスの選択 (マスター) のいずれかを選択すると、選択 (パラメーター) から構築されたクエリ結果 (詳細) がウィンドウのデータグリッド セクションに表示されます。

データグリッドは、選択されたコンボボックスに応じて異なるデータが含まれるため、明示的に定義されていません。したがって、私が使用しているデータグリッドの場合:

<StackPanel Grid.Row="1" Height="167" Name="stackPanel4" VerticalAlignment="Top" DataContext="{StaticResource tbl_MyGenericDataGridViewSource}">
            <DataGrid AutoGenerateColumns="True" Height="166" Name="dataGrid1" Width="760" ItemsSource="{Binding}" />
</StackPanel>

クエリ結果とデータグリッド間の最適なデータ キャッシュはどれですか?
データセットを使用する必要がありますか?

これは、コンボボックスの選択イベントまたはクエリの戻りイベントでデータグリッドにバインドできるものです。Framework 4.0 WPF ウィザードを利用してこれを行いたいと考えています。

4

1 に答える 1

0

私はEDMXについて何も知りません。ParentDataViewしかし、これを行うには、、、、ChildDataViewおよびプロパティを公開する単純なビュー モデル クラスを作成し、Textそれらのコレクションを設定してから、次のようにします。

<ComboBox x:Name="selectTable" 
          ItemsSource="{Binding {StaticResource TableCollection}"             
          DisplayMemberPath="Text"/>
<DataGrid ItemsSource="{Binding ElementName=selectTable, Path=SelectedItem.ParentDataView}"/>
<DataGrid ItemsSource="{Binding ElementName=selectTable, Path=SelectedItem.ChildDataView}"/>

おそらく、オブジェクトのコレクションにDataTableバインドし、子データ グリッドのバインディングを のItemsSourceようなパスに設定することもできSelectedItem.ChildRelations[0].ChildTableますが、テーブルに複数の子リレーションがあり、そうでない場合は、ちょっとうんざりするでしょう。最初のものを使用したい。

また、DataViewビュー モデル クラスで を作成すると、必要なときに並べ替えとフィルター処理のコマンドを簡単に実装できます。

于 2011-03-27T18:15:13.323 に答える