1

LinqToSqlクラスの1つを拡張する部分クラスがあります。この部分クラスには、次の計算フィールドがあります。

    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();      

}

私は、計算フィールドに関連する他の非ナビゲーションプロパティでこの手法をうまく使用しました。これを機能させる方法はありますか?

4

2 に答える 2

0

のセッターで、状態が変化した場合はCluster、を呼び出します。OnClusterIDChanged

于 2012-05-10T07:01:00.877 に答える
0

これについて私が見つけた唯一の解決策は、DeliveryPointクラスにパブリックメソッドを作成して、必須フィールド(ナビゲーションプロパティ)に対してSendPropertyChangedを呼び出せるようにすることでした。

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