主细节绑定

时间:2013-06-07 09:00:21

标签: wpf xaml data-binding master-detail

我正在尝试在Xaml中实现简单的主细节数据绑定C#WPF。在左侧,我有一个正确生成的列表框,在右侧我有一个数据网格。当我单击左侧列表框时,我希望我的Datagrid相应地更改。目前我相信我与SelectedItem路径有问题。有人可以提出建议吗?

public class Pipe
{
    public string ID { get; set; } 

    public ObservableCollection<Node> nodes = new ObservableCollection<Node>(); 
}

public class Node
{
    public int ID { get; set; }
    public double Distance { get; set; }    
}

ObservableCollection<Pipe>  p = new ObservableCollection<Pipe>();

填充我的Pipe Class后,我通过

绑定它
lstLines.DisplayMemberPath = "ID";
lstLines.ItemsSource = p;

直到现在一切正常。 接下来在Xaml中我通过以下方法将我的datagrid绑定到Listbox的SelectedItem:

ItemsSource="{Binding Path=SelectedItem.nodes, ElementName=lstLines, Converter={StaticResource debugConverter}}

这是问题....我无法找到正确的路径,因此我的数据网格基于列表的选择项填充。我尝试了几种不同的变化但是没有。

1 个答案:

答案 0 :(得分:1)

您的Path没问题,但您只能绑定public个属性,而nodes是一个字段:

public ObservableCollection<Node> nodes {get; set; }

您可以在nodes构造函数中初始化Pipe,但它必须是属性