2012-04-04 10 views
1

私は以下を実行しようとしています。WPF showdialog varコンテンツのテキストボックス

通知メッセージを設定できる複数のボタンがあるWPFアプリケーション。 ボタンに応じて、異なるメッセージを設定することができます。

private void button1_Click(object sender, RoutedEventArgs e) 
{ 
    CounterMessage msgOne = new CounterMessage(); 
    msgOne.ShowDialog(); 
} 

これは、ここに新しいWPFウィンドウが唯一のテキストボックスと終了ボタンであるオペアンプを開きます:私は何

は、私はこのコードを入れているメッセージのボタン上にありました。 このメッセージウィンドウで終了すると、メッセージにパラメータを保存します。

しかし、ここにトリックです。 複数の通知にこのメッセージウィンドウを使用したい場合は、アプリケーションに文字列がすでに存在する場合は、テキストボックスにテキストコンテンツを表示します。

したがって、例: メインアプリケーションでは、通知を設定するボタンAとBがあります。私は、だから私がすべきShowDialogのがポップアップ表示され、テキストボックスに、すでにそれがクリックされたボタンBだった場合 「あなたはAボタンをクリックし、」持っている、それは「あなたがボタンBをクリックし、」表示されるはずです、ボタンAに

をクリックし ShowDialogでいくつかの追加情報を送ったので、それぞれのためにmessagewindowを使うことができます。 誰かがちょっと私を助けてくれますか?

私はそれがちょっと私が欲しいものを告げることは難しいと思っていると言わなければならない。

EDIT だから私は、文字列パラメータの内容を見せているしたい帽子は:Countermessageウィンドウ内にあるテキストボックスに(正確にはProperties.Settings.Default.XXX)

答えて

3

私はないですあなたが尋ねていることを完全に確信していますが、あなたはこのようなことをしたいように思えます。私は、CounterMessageがWindowであると仮定しており、メッセージが何であるかを表示するいくつかのバインディングのメカニズムやプロパティがあると仮定しています。ポイントは、あなたがShowDialogメソッドにではなく、ダイアログでクラスに何かを送信しないということで

private void button1_Click(object sender, RoutedEventArgs e) 
{ 
    Button btn = sender as Button; 
    CounterMessage msgOne = new CounterMessage(btn.Text); 
    msgOne.ShowDialog();  
} 

:あなたのボタンイベントは、その後の線に沿って何かだろう

public class CounterMessage : Window 
{ 
    public CounterMessage(string message) 
    { 
     this.Message = message; 
    } 

    public string Message 
    { 
     get; 
     set; 
    } 
} 

自体。私はまた、ダイアログが単にメッセージを表示するだけではないことを前提としています - そうでなければ、あなたはただ使用するでしょうMessageBox.Show(....)

+0

文字列パラメータの内容を表示したいものはありません(正確にはProperties.Settings.Default.XXX)カウンターメッセージウィンドウにあるテキストボックス – Dante1986

+0

これで、代わりにクラスに渡します。ポイントは、あなたはShowDialogの呼び出しで何かを渡すことができない - あなたは何かを基になるクラス(ウィンドウ)に渡す必要があります。 –

+0

ベビーシッター:それは働いています:)ありがとう – Dante1986

0
 Button btn = (Button)sender; 
     Debug.WriteLine(btn.Name); 
関連する問題