我在 WPF 中有 2 个组合框,它们都绑定到 ViewModel 下的 ObservableCollections:
<ComboBox ItemsSource="{Binding Companies}" SelectedItem="{Binding Path=SelectedCompany,Mode=TwoWay}" />
<ComboBox ItemsSource="{Binding Employees}" SelectedItem="{Binding Path=SelectedEmployee,Mode=TwoWay}" />
在 ViewModel 我有:
Public Property Companies As ObservableCollection(Of Company)
Public Property Employees As ObservableCollection(Of Employee)
Public Property SelectedCompany As Company
Public Property SelectedEmployee As Employee
在初始化 ViewModel 时,我询问存储库中的所有公司(它本身使用 Linq-to-Entities 查询),它将公司返回为 IEnumerable (Of Company):
Public Sub New()
Companies = New ObservableCollection(Of Company)(_CompanyRepo.GetAll())
End Sub
到目前为止,一切正常。但现在我需要将数据获取到Employees 集合(有一个存储库,它也返回IEnumerable),并且随时只需要所选公司的Employees 数据。
如何在 ViewModel 中执行此操作?员工 Combobox 应在 Company Combobox 中更改 SelectedItem 时自行更新。
Company 和 Employee 在实体框架中具有一对多的关系。我能以某种方式利用这个事实吗?我可以通过缓存数据来避免以某种方式重复 Linq-to-Entity 查询吗?