0

Xaml で単純なマスター詳細データバインディング C# WPF を実装しようとしています。左側には適切に生成されたリストボックスがあり、右側にはデータグリッドがあります。左のリストボックスをクリックすると、それに応じてデータグリッドが変更されます。現在、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 で、次の方法でデータグリッドを Listbox の SelectedItem にバインドします。

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

ここに問題があります....正しいパスが見つからないため、リストの選択されたアイテムに基づいてデータグリッドが設定されます。いくつかのバリエーションを試しましたが、不足はありません。

4

1 に答える 1

1

あなたは問題ありませんが、プロパティPathのみをバインドでき、あなたはフィールドです:publicnodes

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

nodesコンストラクタで初期化できますPipeが、プロパティである必要があります

于 2013-06-07T09:08:43.543 に答える