一种方法是将 ComboBox 的 ItemsSource 绑定到 ListBox 的 SelectedValue 属性。为此,ListBox 需要绑定到包含 ComboBox 将绑定到的项目列表的项目集合。
<ListBox
x:Name="CategoryList"
ItemsSource="{Binding Path=MasterList,
RelativeSource={RelativeSource AncestorType=Window}}"
DisplayMemberPath="MasterProperty"
SelectedValuePath="Details"
/>
<ComboBox
ItemsSource="{Binding Path=SelectedValue, ElementName=CategoryList}"
DisplayMemberPath="DetailProperty"
Grid.Row="1"
/>
在此示例中,我在窗口后面的代码中创建了一个公共属性,该属性公开了包含 Details 集合的对象列表。
public List<Master> MasterList { get; set; }
public class Master
{
public string MasterProperty { get; set; }
public List<Detail> Details { get; set; }
}
public class Detail
{
public string DetailProperty { get; set; }
}