【发布时间】:2014-07-24 11:44:03
【问题描述】:
我有一个用于布局项目的 WPF 控件并将 ItemsSource 设置为
ItemsSource="{Binding item_portfolio}" DataContext="{Binding SelectedItem}"
在布局控件的资源中,我为其项目设置了模板:
<Style>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<StackPanel Orientation="Vertical" Margin="5">
<TextBlock Text="{Binding portfolio.PortfolioName}" />
<ListView ItemsSource="{Binding ?}">
</ListView>
</StackPanel>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
绑定的数据是多对多关系(一个项目可以有多个投资组合,一个投资组合可以有多个项目)并在数据库中的 3 个单独的表中指定(我使用实体框架来访问它)。下面的架构和示例数据:
item item_portfolio portfolio
ID (PK) Name itemID (FK) portfolioID (FK) ID PortfolioName
1 Item 1 1 1 1 Portfolio 1
2 Item 2 1 2 2 Portfolio 2
1 3 3 Portfolio 3
2 2
2 3
TextBlock 在DataTemplate 下的绑定工作正常。
但是我不知道如何绑定 ListView ItemsSource 以便它显示属于该投资组合的所有项目对象。
编辑: 我想在布局控件中列出投资组合。然后在投资组合下,我想显示它包含哪些项目。下图显示了 SelectedItem 为 Item 1 时的 UI。
(首先我显示这个项目有哪些投资组合。这给出了 3 个投资组合。这工作正常。然后在 UI 上单击投资组合 3,它应该显示属于该投资组合的所有项目(项目 1 和项目 2)。那还不行。)
【问题讨论】:
标签: wpf many-to-many datatemplate