LinqToSql计算字段OnPropertyIDChanged

时间:2012-05-10 06:49:30

标签: linq-to-sql partials calculated-columns

我有一个部分类来扩展我的一个LinqToSql类。在这个部分类中,我有以下计算字段。

    public bool IsInCluster
    {
        get
        {
            return Cluster != null;
        }
    }

为了使网格列数据绑定到此字段自动更新,我实现了以下部分方法。

    partial void OnClusterIDChanged()
    {
        SendPropertyChanged("IsInCluster");
    }

但是当我按照以下代码更新Cluster属性时,不会调用OnClusterIDChanged方法:

  

private void ExecCreateClusterCommand()
  {

        var cluster = new Cluster()
        {
            ID = Guid.NewGuid(),
            MailService = AppState.CurrentMailService
        };

        App.DataContext.Clusters.InsertOnSubmit(cluster);

        foreach (DeliveryPoint deliveryPoint in SelectedDeliveryPoints)
        {
            deliveryPoint.Cluster = cluster;
        }

        App.DataContext.SubmitChanges();      
     

}

我已成功将此技术用于与计算字段相关的其他非导航属性。有没有办法使这项工作?

2 个答案:

答案 0 :(得分:0)

Cluster的设置器中,如果州已更改,请致电OnClusterIDChanged

答案 1 :(得分:0)

我能找到的唯一解决方案是在DeliveryPoint类中创建一个公共方法,使我能够为所需字段(导航属性)调用SendPropertyChanged:

        public void CallSendPropertyChanged(string propertyName)
        {
            SendPropertyChanged(propertyName);
        }