Wpf 绑定到SelectedItem属性的属性
我目前正在试验WPF。 有一件事,我想做的是在多个组合框上进行从主到细节的选择。 我有一个带有GroupItems的ViewModel,用作第一个组合框的ItemSource。这些GroupItems有一个名为Childs的属性,该属性包括属于此组的项目列表 我找不到将comboBox1.SelectedItem.Childs绑定为第二个Combox1.SelectedItem的Itemsource的方法 现在我只需要Wpf 绑定到SelectedItem属性的属性,wpf,data-binding,Wpf,Data Binding,我目前正在试验WPF。 有一件事,我想做的是在多个组合框上进行从主到细节的选择。 我有一个带有GroupItems的ViewModel,用作第一个组合框的ItemSource。这些GroupItems有一个名为Childs的属性,该属性包括属于此组的项目列表 我找不到将comboBox1.SelectedItem.Childs绑定为第二个Combox1.SelectedItem的Itemsource的方法 现在我只需要 ItemsSource="{Binding ElementName=comb
ItemsSource="{Binding ElementName=comboBox1, Path=SelectedItem}"
但是我不知道SelectedItem的属性。如何做到这一点?或者这不是WPF的方式
有没有好的网站可以学习如何选择不同的元素?Eplaining路径、XPath、源代码和所有内容
谢谢您的帮助。您上面的绑定没有尝试绑定到Childs,只选择了editem 试着这样做: Window1.xaml
<Window x:Class="WpfApplication5.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">
<StackPanel>
<ComboBox x:Name="_groups" ItemsSource="{Binding Groups}" DisplayMemberPath="Name"/>
<ComboBox ItemsSource="{Binding SelectedItem.Items, ElementName=_groups}"/>
</StackPanel>
</Window>
Window1.xaml.cs
using System.Windows;
namespace WpfApplication5 {
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window {
public MainWindow() {
InitializeComponent();
var model = new ViewModel();
var g1 = new Group { Name = "Group1" };
g1._items.Add("G1C1");
g1._items.Add("G1C2");
g1._items.Add("G1C3");
model._groups.Add(g1);
var g2 = new Group { Name = "Group2" };
g2._items.Add("G2C1");
g2._items.Add("G2C2");
g2._items.Add("G2C3");
model._groups.Add(g2);
var g3 = new Group { Name = "Group3" };
g3._items.Add("G3C1");
g3._items.Add("G3C2");
g3._items.Add("G3C3");
model._groups.Add(g3);
DataContext = model;
}
}
}
使用System.Windows;
命名空间WpfApplication5{
///
///MainWindow.xaml的交互逻辑
///
公共部分类主窗口:窗口{
公共主窗口(){
初始化组件();
var模型=新的ViewModel();
var g1=新组{Name=“Group1”};
g1._项目。添加(“G1C1”);
g1._项目。添加(“G1C2”);
g1._项目。添加(“G1C3”);
模型组添加(g1);
var g2=新组{Name=“Group2”};
g2._项目。添加(“G2C1”);
g2._项目。添加(“G2C2”);
g2._项目。添加(“G2C3”);
模型组添加(g2);
var g3=新组{Name=“Group3”};
g3._项目。添加(“G3C1”);
g3._项目。添加(“G3C2”);
g3._项目。添加(“G3C3”);
模型组添加(g3);
DataContext=模型;
}
}
}
ViewModel.cs
using System;
using System.Collections.Generic;
namespace WpfApplication5
{
public class Group {
internal List<String> _items = new List<string>();
public IEnumerable<String> Items {
get { return _items; }
}
public String Name { get; set; }
}
public class ViewModel
{
internal List<Group> _groups = new List<Group>();
public IEnumerable<Group> Groups
{
get { return _groups; }
}
}
}
使用系统;
使用System.Collections.Generic;
命名空间WpfApplication5
{
公共课组{
内部列表_items=新列表();
公共数字项目{
获取{return\u items;}
}
公共字符串名称{get;set;}
}
公共类视图模型
{
内部列表_组=新列表();
公共可数群
{
获取{return\u groups;}
}
}
}