我有一个组合框,允许用户选择他们想要的选择。基于对组合框的选择,我将显示带有与用户选择相关的字符串列表的列表框。
示例:用户在组合框上选择“动物”,列表框将显示“猴子、马、猪”。
尝试用最少的编码(XAML 驱动)创建这个简单的绑定,但 1 天无济于事。提前致谢!
编辑:
嗨,对于那些有兴趣以另一种方式(仅使用 xaml 和一个类来存储您的所有数据)的人,您可以在提供的链接中查看 Jehof 的答案。这是实现这一目标的一种非常简单的方法。
我有一个组合框,允许用户选择他们想要的选择。基于对组合框的选择,我将显示带有与用户选择相关的字符串列表的列表框。
示例:用户在组合框上选择“动物”,列表框将显示“猴子、马、猪”。
尝试用最少的编码(XAML 驱动)创建这个简单的绑定,但 1 天无济于事。提前致谢!
编辑:
嗨,对于那些有兴趣以另一种方式(仅使用 xaml 和一个类来存储您的所有数据)的人,您可以在提供的链接中查看 Jehof 的答案。这是实现这一目标的一种非常简单的方法。
这是您正在寻找的内容的快速示例(帮助您入门)。
首先创建一个包含所有数据的对象并将其绑定到 . 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>
结果: