2013-01-18 48 views
2

我有一個簡單的Datagrid綁定到ViewModel的ObservableCollection。這個ObservableCollection由一個自定義類型組成,比如ObservableCollection。WPF datagrid綁定複雜類型屬性back

ComplexType只有2個屬性,並且只有一個屬性可以在屏幕上編輯。另一個是依賴於第一個的bool類型。

當我編輯第一個屬性時,它會反映到ComplexType並且它也會更改第二個屬性。但是第二個屬性在屏幕上沒有改變。

如何更新屏幕上的第二個屬性?

+0

你在你的XAML到第二個特性採用雙向綁定?你在編輯第一個屬性時是否會出現PropertyChanged事件?很高興看到你的代碼。 – acrilige

+0

你應該發佈一些代碼來了解你的綁定和屬性 –

回答

3

試試這個:

public class ComplexType:INotifyPropertyChanged 
{ 
    private object someProperty1; 
    public object SomeProperty1 
    { 
     get{return someProperty1;} 
     set 
     { 
      someProperty1=value; 
      SomeProperty2=somefunc(someProperty1); 

      If(PropertyChanged!=null){PropertyChanged(this, new PropertyChangedEventArgs(SomeProperty1));} 
     } 
    } 

    private object someProperty2; 
    public object SomeProperty2 
    { 
     get{return someProperty2;} 
     set 
     {  
     someProperty2=value; 

     If(PropertyChanged!=null){PropertyChanged(this, new PropertyChangedEventArgs(SomeProperty2));} 
     } 

    public event PropertyChangedEventHandler PropertyChanged; 
} 
2

可觀察集合僅在添加,刪除項目或刷新整個集合時才提供通知。您需要確保每個屬性都引發PropertyChanged事件,或者如果您希望UI在更改時刷新,則它是依賴項屬性。