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 一无所知。但要做到这一点,我会创建一个简单的视图模型类,它暴露ParentDataViewChildDataViewText属性,填充它们的集合,然后执行以下操作:

<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,但是在表有多个子关​​系而您没有的情况下,您会有点搞砸了想用第一个。

此外,在您的视图模型类中创建DataViews 可以让您在时机成熟时轻松实现排序和过滤命令。

于 2011-03-27T18:15:13.323 回答