WPF

2012-12-10 5 views
2

에 사전 바인딩 나는이 시도하지만WPF

작동 나던,

public class TAGs :INotifyPropertyChanged{ 
private Dictionary<string, string[]> _items = new Dictionary<string,string[]>(); 
............... 
public string[] Keys 
    { 
     get { return Items.Keys.ToArray(); } 
    } 

} 
내가이 목록은 키와 다른 목록 1 개 목록을 만들려면

선택한 키의 값을 포함 dictonary이

<ListBox x:Name="TagNameList" ItemsSource="{Binding Keys}"/> 
<ListBox ItemsSource="{Binding Items[{Binding SelectedItem,ElementName=TagNameList}]}"/> 

내가 그리드에 포함 된 자신의 데이터 컨텍스트는 1 목록 상자 속성 만 2 목록에 단순 바인딩으로 잘 작동되고, 태그의 목적은, 도움이 일하고 밤은?

답변

0

"{Binding Items[{Binding SelectedItem,ElementName=TagNameList}]}"은 (는) 잘못된 xaml입니다. 컴파일 타임에 경로가 생성되므로 경로 내부에서 바인딩을 수행 할 수 없습니다.

Items[selectedKey]이있는 내 두 번째 ListBox이 바인드되는 노출 다른 재산에 NotifyPropertyChanged 화재, 나는 단순히이 변경 통지를 가져옵니다 SelectedItem ListBox 한 다음에 뭔가 다른 바인딩 결국 한 자신이 발생합니다.

XAML :

<ListBox x:Name="TagNameList" ItemsSource="{Binding Keys}" SelectedItem={Binding Selected}/> 
<ListBox ItemsSource="{Binding ValueFromKey}"/> 

C 번호 :

string _selected; 
public string Selected 
{ 
    get { return _selected; } 
    set 
    { 
     _selected= value; 
     OnPropertyChanged("Selected"); 
     OnPropertyChanged("ValueFromKey"); 
    } 
} 

public string[] ValueFromKey 
{ 
    get { return Items[Selected]; } 
} 
+0

그래서 어떤 대안? –

+0

추가 속성. 내 편집을 참조하십시오. – mydogisbox

+0

예를 제공해주세요. 나는 두 번째리스트 바인딩을 할 수 없다. –