1

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

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

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

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

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

私人无效 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();      

}

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

4

2 回答 2

0

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

        public void CallSendPropertyChanged(string propertyName)
        {
            SendPropertyChanged(propertyName);
        }
于 2012-05-10T21:47:27.553 回答
0

如果状态已更改,请在您的 setter 中Cluster调用。OnClusterIDChanged

于 2012-05-10T07:01:00.877 回答