![](/img/trans.png)
[英]WPF MVVM How to prefill textbox with binding on ShowDialog()?
[英]WPF showdialog Textbox with var content
我尝试完成以下工作:
一个 WPF 应用程序,我有多个按钮,您可以在其中设置通知消息。 根据按钮,您可以设置不同的消息。
我所做的是在消息按钮上放置了这段代码:
private void button1_Click(object sender, RoutedEventArgs e)
{
CounterMessage msgOne = new CounterMessage();
msgOne.ShowDialog();
}
这将打开一个新的 WPF window 这里只有一个文本框和一个退出按钮。 在此消息 window 中退出时,它会将消息保存到参数中。
但这是诀窍。 我想将此消息 window 用于多个通知,如果应用程序中的字符串上已有任何文本内容,它将在文本框中显示任何文本内容。
因此,例如:在主应用程序中,我有按钮 A 和 B 来设置通知。 我点击按钮 A,弹出显示对话框,文本框中已经有“你点击了按钮 A”如果点击的是按钮 B,它应该显示“你点击了按钮 B”
所以我应该用 ShowDialog 发送一些额外的信息,这样我就可以为每个人使用消息窗口。 有人可以帮我一下吗?
我必须说我发现很难正确描述我想要的东西,所以我希望我说得够清楚了。
编辑所以我想要的是将字符串参数的内容(准确地说:Properties.Settings.Default.XXX)显示到反消息window中的文本框中
我不完全确定你在问什么,但听起来你想要这样的东西。 我假设 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 方法发送内容,而是向对话框本身的 class 发送内容。 我还假设该对话框不仅仅显示消息 - 否则,您只需使用MessageBox.Show(....)
Button btn = (Button)sender;
Debug.WriteLine(btn.Name);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.