带有var内容的WPF showdialog文本框

时间:2012-04-04 12:50:41

标签: c# wpf showdialog

我尝试完成以下操作:

一个WPF应用程序,我有多个按钮,您可以在其中设置通知消息。 根据按钮的不同,您可以设置不同的消息。

我做了什么,是在我输入此代码的消息按钮上:

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

这将打开一个新的WPF窗口,这里只有一个文本框和一个退出按钮。 退出此消息窗口时,它会将消息保存到参数。

但这是诀窍。 我想将此消息窗口用于多个通知,如果应用程序中的字符串已经存在任何文本内容,它将在文本框中显示。

所以例如: 在主应用程序中,我有按钮A和B来设置通知。 我点击按钮A,showdialog弹出,在文本框中已经有“你点击按钮A” 如果是单击了按钮B,则应显示“您单击按钮B”

所以我应该使用ShowDialog发送一些额外的信息,所以我可以使用每个消息窗口。 有人可以帮我一点吗?

我必须说我觉得有点难以正确地描述我想要的东西,所以我希望我能让自己清楚明白。

EDIT 所以我想要的是将一个字符串参数(确切地说是:Properties.Settings.Default.XXX)的内容显示在Countermessage窗口中的文本框中

2 个答案:

答案 0 :(得分:3)

我不完全确定你在问什么,但听起来你想要这样的东西。我假设CounterMessage是一个Window,并且有一些绑定机制或属性显示消息是什么。

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

    public string Message
    {
        get;
        set;
    }
}

您的按钮事件将成为以下内容:

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

关键是你不向ShowDialog方法发送内容,而是发送对话框本身的类。我还假设对话框不仅仅是显示消息 - 否则,您只需使用MessageBox.Show(....)

答案 1 :(得分:0)

        Button btn = (Button)sender;
        Debug.WriteLine(btn.Name);