1

.net 4.5 に WPF アプリケーションがあります。このアプリケーションでは、「クライアント」という名前のクラスを作成しました。

私の App.xaml.cs で、 Client オブジェクトを宣言してインスタンス化します。

    public partial class App : Application
    {

        public static Client obj_myClient;

        private void Application_Startup_1(object sender, StartupEventArgs e)
        {

            obj_myClient = new Client();

        }
    }

起動後、すべてのクライアントを DataGrid にロードし、(DataGrid の) クライアント行に移動すると、クライアント プロパティが App.obj_myClient (バインド付き) にロードされます。

クライアントを DataBASE に保存して簡単に変更できます。

私の質問: 新しいクライアントを作成したいときは、App.objMyClient オブジェクトを「フラッシュ」する必要があるため、以下を使用しました:

App.obj_myClient = new Client();

このコードは正しくコンパイルされ、クラッシュはありませんが、バインディングで誤ったデータが生成され、常に奇妙な間違いが発生するようです (非発火イベントの変更など...)。

私はそれが関連していると思います:

App.obj_myClient = new Client(); 

この行を削除すると、コードが改善されるためです。

この場合のアドバイスを教えてください。

どうもありがとう :)

よろしくお願いします、

ニクセウス

4

2 に答える 2

1

クライアントオブジェクトを静的にする必要はありません。プロパティに変換します。

そして、イベントの不発は、新しい Client オブジェクトを作成すると、古いオブジェクトへのサブスクリプションが失われ、それらを再作成する必要があることです。

于 2013-04-12T12:43:32.193 に答える