2013-01-18 61 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在更改时刷新,则它是依赖项属性。