我有2个表List,ListItem表单关系一对多(一个列表有很多列表项)。 我想使用ListBoxs和域数据源实现主/详细视图。 以下是我的XAML,但详细信息表(ListItem)没有显示Master表(List表)中所选行的值的问题.I使用主列表框的SelectedItem属性绑定详细列表框(ListBoxValues)(ListBoxNames )。
<riaControls:DomainDataSource AutoLoad="True" Height="0" Name="listDomainDataSource" QueryName="GetListQuery" Width="0">
<riaControls:DomainDataSource.DomainContext>
<my:Rule_DBDomainContext />
</riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource >
<StackPanel Orientation="Horizontal" Grid.Row="2" Height="600" >
<ListBox Name="ListBoxNames" Margin="82,0,20,0" Width="200"
ItemsSource="{Binding Data,ElementName=listDomainDataSource}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Name="listNameTxt" Text="{Binding Name, Mode=TwoWay}"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<ListBox Name="ListBoxValues" Margin="82,0,20,0" Width="200" ItemsSource="{Binding SelectedItem.ListItem,ElementName=ListBoxNames}" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Name="listValueTxt" Text="{Binding Item, Mode=TwoWay}"></TextBlock>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
PS:
我做了一些调试我发现List类中的ListItem属性还没有被填充!我不知道为什么,它总是零数,
答案 0 :(得分:0)
我解决了它只是添加一个新的domaindatasource并将其过滤器与主列表框selectitem属性绑定如下
<riaControls:DomainDataSource AutoLoad="True" Height="0" Name="listItemsDomainDataSource" QueryName="GetListItemQuery" Width="0" FilterOperator="And">
<riaControls:DomainDataSource.DomainContext>
<my:Rule_DBDomainContext />
</riaControls:DomainDataSource.DomainContext>
<riaControls:DomainDataSource.FilterDescriptors>
<riaControls:FilterDescriptor PropertyPath="ListId" Operator="IsEqualTo" Value="{Binding ElementName=ListBoxNames, Path=SelectedItem.id}" />
</riaControls:DomainDataSource.FilterDescriptors>
</riaControls:DomainDataSource >