0

listBoxを含むメインページがあります。

ユーザーがリストボックスからプロファイルを選択すると、と呼ばれる子ウィンドウが開きますpWindow。このウィンドウは、と呼ばれる別の確認ウィンドウを開くハイパーリンクボタンを介して現在のプロファイルを削除するオプションとして使用されますdprofile

私の質問は、ユーザーが現在のプロファイルを削除することを確認し、ボタンをクリックしてそれを確認したらdProfile、最初のメインページのlistBoxを更新して、リストに削除されたものが含まれないようにする方法です。プロファイル(現在は実行していません。

dProfileウィンドウでイベントを作成しました-

public event EventHandler SubmitClicked;

[OK]ボタンをクリックしてください-

private void OKButton_Click(object sender, RoutedEventArgs e)
{
  if (SubmitClicked != null)
  {
      SubmitClicked(this, new EventArgs());
  }
}

だからメインページに追加しました-

private void deleteProfile_SubmitClicked(object sender, EventArgs e)
    {
        WebService.Service1SoapClient client = new WebService.Service1SoapClient();

        listBox1.Items.Clear();
        client.profileListCompleted += new EventHandler<profileListCompletedEventArgs>(client_profileListCompleted);
        client.profileListAsync(ID);
    }

フォームで確認されたので、これでlistBoxが更新された可能性があると思いましたがdProfile、フォームを閉じてもlistBoxは同じままであり、更新を確認するにはWebページを手動で更新する必要があります。これどうやってするの?

4

1 に答える 1

2

私がそれを正しく理解したなら、あなたは3ページあります。Main、pWindow、およびdProfile。以前、dProfileからpWindwowを閉じようとしていましたが、それは正しく機能していました。次に、メインページのlistBox1を更新します。
それを達成するために、あなたは同様の戦略に従うかもしれません。次の行に何かを追加して、メインページからpWindowを開いている可能性があります

pWindow pWin = new pWindow();
pWin.Show();

これで、pWindowクラスで新しいイベントを定義できます。

public event EventHandler pWindowRefeshListBox;

次に、deleteProfile_SubmitClickedのイベントハンドラーで、次の行にあるリストボックス1を更新するイベントを発生させることができます。

private void deleteProfile_SubmitClicked(object sender, EventArgs e)
{
    if(pWindowRefreshListBox != null)
        pWindowRefreshListBox(this, new EventArgs());
    this.Close();
}

次に、メインページで、前に定義したpWinオブジェクトに対するイベントを登録します。

pWin.pWindowRefreshListBox += new new EventHandler(pWindow_pWindowRefreshListBox);

次に、メインページでイベントを定義します。

private void pWindow_pWindowRefreshListBox(object sender, EventArgs e)
{
    listBox1.Items.Clear();
}

これにより、リストボックスが更新されます。コードや構文はテストしていません。したがって、実装する前に確認することができます。

編集
あなたはdProfileでイベントを静的として定義することができます

public static event EventHandler SubmitClicked;

次に、クラス名に対してMainおよびpWindowに登録できるようになります。

dProfile.SubmitClicked += new ..............

次に、それに応じて実装します。pWindowで、ウィンドウを閉じ、メインの更新リストボックスで

編集:
メインページでdeleteProfileのインスタンスを作成して、メインページに次を登録することができます

deleteProfile.SubmitClicked += new EventHandler(deleteProfile _SubmitClicked)

これはうまくいくはずです

于 2012-05-10T16:33:09.863 に答える