2013-06-07 2 views
0

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>(); 

내 파이프 클래스를 채우기 후 지금은 모든 것이 제대로 작동 할 때까지

lstLines.DisplayMemberPath = "ID"; 
lstLines.ItemsSource = p; 

통해 바인딩합니다. 내 데이터 그리드는 목록의 selectedItem에 기반을 채워집니다 그래서 올바른 경로를 찾을 수 없습니다 .... 여기

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

문제입니다 : XAML에서 다음 나는 통해 목록 상자의 selectedItem가 내 데이터 그리드를 바인딩합니다. 여러 가지 변형을 시도했지만 부족함이 없습니다.

답변

1

귀하의 Path 괜찮습니다하지만 당신은 단지 public 속성을 바인딩 할 수 있습니다 당신의 nodes는 필드 :

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

당신이 Pipe 생성자에서 nodes을 초기화 할 수 있지만,이

+0

내가 그렇게 느끼는 속성을해야합니다 stupido :) 내 코드 수정 : ObservableCollection _nodes = new ObservableCollection (); 공개 ObservableCollection 노드 {get {return _nodes; }}. 그리고 잘 작동합니다. – Jim