1

我有一个组合框,允许用户选择他们想要的选择。基于对组合框的选择,我将显示带有与用户选择相关的字符串列表的列表框。

示例:用户在组合框上选择“动物”,列表框将显示“猴子、马、猪”。

尝试用最少的编码(XAML 驱动)创建这个简单的绑定,但 1 天无济于事。提前致谢!

编辑:

嗨,对于那些有兴趣以另一种方式(仅使用 xaml 和一个类来存储您的所有数据)的人,您可以在提供的链接中查看 Jehof 的答案。这是实现这一目标的一种非常简单的方法。

ListBox 不显示绑定数据

4

1 回答 1

2

这是您正在寻找的内容的快速示例(帮助您入门)。

首先创建一个包含所有数据的对象并将其绑定到 . ComboBox,然后使用 ComboboxesSelectedItem填充ListBox.

代码:

public partial class MainWindow : Window
{
    public MainWindow()
    { 
        InitializeComponent(); 
        Categories.Add(new Category { Name = "Animals", Items = new List<string> { "Dog", "Cat", "Horse" } });
        Categories.Add(new Category { Name = "Vehicles", Items = new List<string> { "Car", "Truck", "Boat" } });

    }

    private ObservableCollection<Category> _categories = new ObservableCollection<Category>();
    public ObservableCollection<Category> Categories
    {
        get { return _categories; }
        set { _categories = value; }
    }
}

public class Category
{
    public string Name { get; set; }
    public List<string> Items { get; set; }
}

xml:

<Window x:Class="WpfApplication10.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525" Name="UI">

        <StackPanel DataContext="{Binding ElementName=UI}">
            <ComboBox x:Name="combo" ItemsSource="{Binding Categories}" DisplayMemberPath="Name"/>
            <ListBox ItemsSource="{Binding SelectedItem.Items, ElementName=combo}"/>
        </StackPanel>
</Window>

结果:

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

于 2013-03-19T03:19:25.203 回答