Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 绑定到SelectedItem属性的属性_Wpf_Data Binding - Fatal编程技术网

Wpf 绑定到SelectedItem属性的属性

Wpf 绑定到SelectedItem属性的属性,wpf,data-binding,Wpf,Data Binding,我目前正在试验WPF。 有一件事,我想做的是在多个组合框上进行从主到细节的选择。 我有一个带有GroupItems的ViewModel,用作第一个组合框的ItemSource。这些GroupItems有一个名为Childs的属性,该属性包括属于此组的项目列表 我找不到将comboBox1.SelectedItem.Childs绑定为第二个Combox1.SelectedItem的Itemsource的方法 现在我只需要 ItemsSource="{Binding ElementName=comb

我目前正在试验WPF。 有一件事,我想做的是在多个组合框上进行从主到细节的选择。 我有一个带有GroupItems的ViewModel,用作第一个组合框的ItemSource。这些GroupItems有一个名为Childs的属性,该属性包括属于此组的项目列表

我找不到将comboBox1.SelectedItem.Childs绑定为第二个Combox1.SelectedItem的Itemsource的方法

现在我只需要

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;}
}
}
}