使用XAML基于另一个ComboBox填充ComboBox

Jas*_*sey 2 vb.net data-binding wpf xaml linq-to-entities

我有两个ComboBoxes

<ComboBox Name="cmbMake" DisplayMemberPath="MakeName" SelectedValuePath="MakeID"/>
<ComboBox Name="cmbModel" DisplayMemberPath="ModelName"/>
Run Code Online (Sandbox Code Playgroud)

我使用LINQ-to-Entities来填充cmbGroup ComboBox

Dim db as myDataEntity
cmbGroup.ItemsSource = db.Makes
Run Code Online (Sandbox Code Playgroud)

如何根据使用XAML 选择的第一个ComboBox(cmbMake)来填充我的第二个ComboBox(cmbModels),这样我在第一个ComboBox中选择的任何内容都会自动过滤第二个ComboBox中的ItemsSource?

这甚至可能吗?

Jas*_*sey 5

我在这里发布完整的解决方案

XAML

<ComboBox Name="cmbMake" DisplayMemberPath="MakeName" SelectedValuePath="MakeID"  Width="200"/>
<ComboBox Name="cmbModel" DisplayMemberPath="ModelName" DataContext="{Binding SelectedItem, ElementName=cmbMake}" Width="200"/>
Run Code Online (Sandbox Code Playgroud)

代码隐藏

Private Sub cmbMake_SelectionChanged(ByVal sender As System.Object, ByVal e As System.Windows.Controls.SelectionChangedEventArgs) Handles cmbMake.SelectionChanged

        Dim myItem = From m In myModel
                     Where m.MakeID = cmbMake.SelectedValue

        cmbModel.ItemsSource = myItem

End Sub
Run Code Online (Sandbox Code Playgroud)

每当在cmbModel ComboBox中更改值时,它将使用LINQ重置cmbModel ComboBox 的ItemsSource.

非常感谢@XAMeLi的帮助!