0

我有以下 XAML。假设 FruitList 是 Fruits 的集合,每个 FruitSeeds 都有一个 FruitSeeds 集合。是否有将 cbxFruitSeeds 绑定到 FruitSeeds 集合的语法,具体取决于在 cbxFruits 中选择了哪个 Fruit?

<GridView>

    <GridViewColumn Header="Fruits">

        <GridViewColumn.CellTemplate>

            <DataTemplate>

                <ComboBox DisplayMemberPath="Fruit.Name" ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ItemsControl}}, Path=DataContext.FruitList}" x:Name="cbxFruits"/>

            </DataTemplate>

    </GridViewColumn.CellTemplate>

</GridViewColumn>

    <GridViewColumn Header="FruitSeeds">

        <GridViewColumn.CellTemplate>

            <DataTemplate>

                <ComboBox x:Name="cbxFruitSeeds"></ComboBox>

            </DataTemplate>

        </GridViewColumn.CellTemplate>

    </GridViewColumn>

</GridView>
4

2 回答 2

1

看起来你正在尝试做一个级联组合框。

真的没有办法在xaml绑定中跟进数据集父关系吗?展示了如何在 xaml 中进行父子设置。

于 2009-02-11T01:08:02.570 回答
0

有两种方法可以正确地做到这一点。

  1. 将集合视图设置为第二个组合框的源,然后设置第一个组合框以更改该集合视图上的过滤器。
  2. 让第一个组合框的项目的数据类型每个都包含第二个组合框的项目列表。当第一个组合框被选中时,它的结果被设置为第二个的数据上下文,然后将第二个绑定到包含的列表。

第一个更可取,因为您不需要将水果类型存储在保存用户选择的数据中。第一个组合框由配置或元数据填充。

于 2013-09-12T14:28:31.363 回答