【问题标题】:WPF datagrid binding complex type property backWPF datagrid 绑定复杂类型属性返回
【发布时间】:2013-01-18 13:48:15
【问题描述】:

我有一个简单的 Datagrid 绑定到来自 ViewModel 的 ObservableCollection。这个 ObservableCollection 由自定义类型组成,比如 ObservableCollection。

ComplexType 只有 2 个属性,并且只有一个在屏幕上是可编辑的。另一个是依赖于第一个的 bool 类型。

当我编辑第一个属性时,它会反映到 ComplexType,它还会更改第二个属性。但是第二个属性在屏幕上没有改变。

如何更新屏幕上的第二个属性?

【问题讨论】:

  • 您是否在 xaml 中使用双向数据绑定到第二个属性?您在编辑第一个属性时是否会触发 PropertyChanged 事件?很高兴看到你的一些代码。
  • 你应该发布一些代码来了解你的绑定和属性

标签: wpf data-binding datagrid complextype


【解决方案1】:

试试这个:

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】:

    仅当添加、删除项目或刷新整个集合时,可观察集合才提供通知。如果您希望 UI 在更改时刷新,您需要确保每个属性要么引发 PropertyChanged 事件,要么是一个依赖属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-29
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多