Tho*_*que 52
您可以在第二个窗口中公开属性,以便第一个窗口可以检索它.
public class Window1 : Window
{
...
private void btnPromptFoo_Click(object sender, RoutedEventArgs e)
{
var w = new Window2();
if (w.ShowDialog() == true)
{
string foo = w.Foo;
...
}
}
}
public class Window2 : Window
{
...
public string Foo
{
get { return txtFoo.Text; }
}
}
Run Code Online (Sandbox Code Playgroud)
Rob*_*ney 20
如果您不想公开属性,并且希望更明确地使用该用法,则可以重载ShowDialog:
public DialogResult ShowDialog(out MyObject result)
{
DialogResult dr = ShowDialog();
result = (dr == DialogResult.Cancel)
? null
: MyObjectInstance;
return dr;
}
Run Code Online (Sandbox Code Playgroud)
神圣的火星之母,我花了很长时间才弄清楚:
窗口 1:
if ((bool)window.ShowDialog() == true)
{
Window2 content = window.Content as Window2;
string result = content.result;
int i = 0;
}
Run Code Online (Sandbox Code Playgroud)
窗口 2:
public partial class Window2 : UserControl
{
public string result
{
get { return resultTextBox.Text; }
}
public Window2()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
Window.GetWindow(this).DialogResult = true;
Window.GetWindow(this).Close();
}
}
Run Code Online (Sandbox Code Playgroud)
XAML:
<Button IsDefault="True" ... />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55504 次 |
| 最近记录: |