2012-05-10 11 views
1

Silverlightでプロファイルウィンドウを使用していますが、ハイパーリンクボタンで現在のプロファイルを削除するオプションがあります。ユーザーがハイパーリンクボタンを押すと、削除を確認するために新しいフォームが表示されます。削除機能は機能しましたが(つまり、プロファイルがデータベースから削除されています)、ユーザーが確認したら最初のウィンドウを閉じるにはどうすればよいですか?現在のウィンドウを閉じる

これは、私は、ユーザーがOK-

private void OKButton_Click(object sender, RoutedEventArgs e) 
    { 

     textBlock1.Text = "Profile Deleted."; 
     profileForm.Close(); 

     Close(); 
    } 

しかしdProfileをクリックすると、ハイパーリンクが上に座っていることprofileFormを閉じたいdProfileに続いて

private void deleteProfile(object sender, RoutedEventArgs e) 
    { 

     deleteProfile dProfile = new deleteProfile(); 
     dProfile.textBlock1.Text = System.Convert.ToString("Delete " + lblMsg.Content); 
     dProfile.Show(); 
    } 

calls-何のハイパーリンクがあるからですフォームは、新しいインスタンスを作成するときにprofileFormを認識するだけです。現在使用しているインスタンスをどのように参照できますか?

答えて

2

は、他のいくつかの方法があるかもしれませんが、あなたは次のことを試すことができます。

ChildWindowオブジェクト

deleteProfile.SubmitClicked += new EventHandler(deleteProfile _SubmitClicked); 
に対してイベントを添付し、 メインウィンドウで次の操作を行い、あなたのOKButton_Clickイベントで子ウィンドウに

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

public event EventHandler SubmitClicked; 

をイベントを作成します。

それからあなたがやるウルド:(そのここでは必須ではありませんが、しかし、あなたが親ウィンドウの子ウィンドウから値を渡すためにプロセスを使用することができます)

private void deleteProfile_SubmitClicked(object sender, EventArgs e) 
{ 
    this.Close(); 
} 

はまた、このarticle

+1

ブリリアントコード/答えをチェックしてください。 – Ebikeneser

+0

興味深いことに、ユーザーがアイテムを選択するとprofileFormが開き、次にdProfileフォームが3番目のステージになるというlistBoxがあるSilverlightアプリケーションのメインページにlistBoxがあります。ユーザーがdProfileフォームでokをクリックすると、メインページのリストボックスを更新することは可能ですか? – Ebikeneser

+0

リストボックスがWebサービス呼び出しでリンクされていると言います。 – Ebikeneser

0

あなた自身を「削除フォーム」に登録してください。 このプロパティは:IsDeletedになります。 ユーザーが[OK]をクリックするとTrueに設定されます。 メインウィンドウに戻るときは、このプロパティを読み、現在のウィンドウを閉じます。

または子ウィンドウから結果を得る

...

var viewModel = _srvLocator.GetInstance<YourViewModel>(); 
var inst = _srvLocator.GetInstance<IWindowManager>(); 

if (inst.ShowDialog(viewModel).Value) 
{ 
Close(); 
} 
関連する問題