2012-05-10 70 views
1

我有一個部分類來擴展我的一個LinqToSql類。在這個部分類中,我有以下計算字段。LinqToSql計算字段OnPropertyIDChanged

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

爲了使網格列數據綁定到這個字段來自動更新我已經實現了下面的部分方法。

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

然而,當我更新羣集屬性作爲顯示在下面的代碼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();  

}

我已成功將此技術與其他與計算字段相關的非導航屬性一起使用。有沒有辦法做到這一點?

回答

0

我能找到的唯一的解決方法是在DeliveryPoint類來創建一個公共方法讓我打電話給SendPropertyChanged爲必填字段(導航屬性):在我LinqToSQL生成的類

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

如果狀態發生變化,請在您的設置人Cluster中撥打OnClusterIDChanged

+0

沒有僅適用於OnClusterIDChanged的羣集設置程序的擴展性方法。 – daveywc