我已经看了很长一段时间的片段和教程,但我找不到完整的答案——只有一些零碎的东西。
我有一个包含 3 个表的数据库:
产品:
- id唯一标识符
- 名称nvarchar(50)
类别:
- id唯一标识符
- 名称nvarchar(50)
产品分类:
- fk_product 唯一标识符
- fk_category 唯一标识符
显然,这涉及到多对多的关系——一个产品可以有多个类别,一个类别可以应用于多个产品。
下一步是从数据库生成 ADO.NET 模型和域服务。这非常简单,我认为是标准的。
现在在视图中,我使用了 Silverlight 4 Toolkit 提供的 DataGrid 和 DataForm。
<toolkit:DataForm ItemsSource="{Binding Data, ElementName=ProductsSource}" Name="dataForm1" AutoCommit="True" />
和
<sdk:DataGrid x:Name="dataGird" ItemsSource="{Binding Data, ElementName=ProductsSource}" AutoGenerateColumns="True" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" />
数据源 ProductsSource 定义如下:
<riaControls:DomainDataSource Name="ProductsSource" QueryName="GetProductsQuery" AutoLoad="True">
<riaControls:DomainDataSource.SortDescriptors>
<riaControls:SortDescriptor Direction="Ascending" PropertyPath="title" />
</riaControls:DomainDataSource.SortDescriptors>
<riaControls:DomainDataSource.DomainContext>
<domain:PortfolioDomainContext />
</riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource>
现在:在视图中呈现来自这种多对多关系的数据的最佳方式是什么?有没有办法在 DataForm 中为具有多对多关系的属性显示启用多选的列表框?