2014-03-31 147 views
1

我正在嘗試訪問我的字典的值的複雜對象的字符串屬性。關鍵是我班的財產。WPF在綁定字典中綁定

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

綁定內的綁定不起作用,因爲它是無效的XA​​ML。有沒有另一種方法來做到這一點?

回答

1

是的,雙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}"/>