2014-03-31 3 views
1

내 사전의 값인 복합 개체의 문자열 속성에 액세스하려고합니다. 열쇠는 내 수업의 재산입니다.바인딩 사전의 WPF 바인딩

<DataGridTextColumn Binding="{Binding Path=MyDictionary[{Binding MyClassProp}].MyObjValue}"/> 

바인딩이 유효한 XAML이 아니므로 바인딩 내에서 바인딩이 작동하지 않습니다. 이것을 할 또 다른 방법이 있습니까?

답변

1

예, double Binding은 작동하지 않습니다.

이 클래스가 구현 적이 INotifyPropertyChanged : 나는 어쩌면이 같은 것을 할 수있는,이 테스트를 할 수 있었다하지만하지 않은

public event PropertyChangedEventHandler PropertyChanged; 

protected void Notify(string propName) 
{ 
    if (this.PropertyChanged != null) 
     PropertyChanged(this, new PropertyChangedEventArgs(propName)); 
} 

을 때 MyClassProp 속성 변경 :

private string _MyClassProp; 
public string MyClassProp 
{ 
    get { return _MyClassProp; } 
    set 
    { 
     _MyClassProp = value; 

     MyDictValue = MyDictionary[MyClassProp].MyObjValue; 
     Notify("MyClassProp"); 
    } 
} 

공지 사항 MyClassProp이 변경되면 사전 값으로 다른 속성을 설정합니다.

private string _MyDictValue; 
public string MyDictValue 
{ 
    get { return _MyDictValue; } 
    set 
    { 
     _MyDictValue = value; 
     Notify("MyDictValue"); 
    } 
} 

그리고 바인딩하여 XAML을 변경 :

<DataGridTextColumn Binding="{Binding MyDictValue}"/> 
다음 속성이 바인딩으로 사용되도록 정의