3

wsdl をインポートして、すべてのクライアント クラスを取得しました。wpf バインディングの目的で、追加の (計算された) プロパティをクラスに追加したいと考えています。計算されたプロパティを、サーバーから返された (グリッド内の) プロパティと一緒に (およびそれに基づいて) 表示したい

私にとって論理的なことは、wcf で生成されたクラスと同じ名前空間と同じクラス名の部分クラスを作成し、新しい計算されたプロパティをこの部分クラスに追加することでした。

    namespace TestClient.WSCompanySearch  //same namespace as the generated class from wsdl
    {
        public partial class Company  //same class returned by wsdl
        {
            public bool IsValid
            {
                get {

                    if ((this.CloseDate < DateTime.Now) || (this.Rooms == 0))
                    {
                        return false;
                    }
                    else
                    {
                        return true;
                    }
                }
            }                       
        }
    }

この余分なプロパティは間違いなくそこにあり、コードを記述すればわかりますが、バインドすると、カスタム プロパティが無視されているように見えます。getter のブレークポイントは呼び出されていないため、呼び出されていないことを示しています。

4

3 に答える 3

0

計算されたプロパティが必要な列にConverterを使用すると、同じ結果が得られる場合があります。

于 2012-12-14T08:03:35.457 に答える
0

同じ問題がありました。オブジェクトを逆シリアル化できるようにするために、プライベート set メソッドを追加する必要があります

于 2014-03-04T12:07:47.583 に答える
0

私の方法は結局正しかった。の単なる組み合わせ

  1. 私のロジックは新しいプロパティ内で間違っていました
  2. 新しいクラスのブレークポイントを機能させるには、「Just My Code」デバッグをオフにする必要がありました。VSは、それが生成されたコードの一部であり、デバッグしたくないと考えていると思います
于 2012-12-14T11:24:49.050 に答える