Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在UserControl中从自定义WPF窗口到父窗口获取结果_C#_.net_Wpf - Fatal编程技术网

C# 如何在UserControl中从自定义WPF窗口到父窗口获取结果

C# 如何在UserControl中从自定义WPF窗口到父窗口获取结果,c#,.net,wpf,C#,.net,Wpf,下面是我如何获得messagebox的。现在我希望它返回userControl中的特定值。有什么帮助吗?在关闭窗口之前,在窗口本身中设置窗口的对话框result。 设置的值将由ShowDialog()返回 如果您想返回多个bool?,请创建一个包装器方法,该方法调用ShowDialog(),并返回您想要的任何内容。关闭前在窗口本身中设置窗口的对话框结果。 设置的值将由ShowDialog()返回 如果您想返回多个bool?,请创建一个包装器方法,该方法调用ShowDialog(),并返回您想要的

下面是我如何获得messagebox的。现在我希望它返回userControl中的特定值。有什么帮助吗?

在关闭窗口之前,在窗口本身中设置窗口的
对话框result

设置的值将由
ShowDialog()返回


如果您想返回多个
bool?
,请创建一个包装器方法,该方法调用
ShowDialog()
,并返回您想要的任何内容。

关闭前在窗口本身中设置窗口的
对话框结果。
设置的值将由
ShowDialog()返回


如果您想返回多个
bool?
,请创建一个包装器方法,该方法调用
ShowDialog()
,并返回您想要的任何内容。

正如@SLaks所说,使用对话框reslult。。。如果这还不够,并且您使用的是MVVM模型,然后您可以使用您的数据模型:将子窗口的
DataContext
设置为您的数据模型实例,然后您可以将子窗口中的控件绑定到模型上的任何数据成员——通常您会将
DataContext
设置为父窗口的
DataContext

protected popMyWindow()
{
    MyChildWindow cw = new MyChildWindow();
    cw.DataContext = this.DataContext();
    // show the window...
}

正如@SLaks所说,使用对话框reslult。。。如果这还不够,并且您使用的是MVVM模型,然后您可以使用您的数据模型:将子窗口的
DataContext
设置为您的数据模型实例,然后您可以将子窗口中的控件绑定到模型上的任何数据成员——通常您会将
DataContext
设置为父窗口的
DataContext

protected popMyWindow()
{
    MyChildWindow cw = new MyChildWindow();
    cw.DataContext = this.DataContext();
    // show the window...
}

这些问题的WPF解决方案是“页面函数”

PageFunction是WPF中定义的一个新术语。它使用户能够导航到特定页面并执行任务,然后导航回包含结果的调用者页面。它的行为就像模态对话框,不同之处在于PageFunction不会显示为s弹出窗口,而是显示在与调用者相同的页面中。

资料来源:

它与包装ShowDialog的模式的不同之处在于页面被导航到,更重要的是,它已经在WPF管道中被强类型化了,并且不需要您开发一个新类来做同样的事情

这里有一个解释性的堆栈溢出线程


这些问题的WPF解决方案是“页面功能”

PageFunction是WPF中定义的一个新术语。它使用户能够导航到特定页面并执行任务,然后导航回包含结果的调用者页面。它的行为就像模态对话框,不同之处在于PageFunction不会显示为s弹出窗口,而是显示在与调用者相同的页面中。

资料来源:

它与包装ShowDialog的模式的不同之处在于页面被导航到,更重要的是,它已经在WPF管道中被强类型化了,并且不需要您开发一个新类来做同样的事情

这里有一个解释性的堆栈溢出线程


这很好,唯一需要注意的是,该应用程序需要是一个“导航应用程序”,可能是WPF的先辈们认为,如果您需要从对话框中获取一些信息,那么无论如何,您都隐含在导航上下文中。我们的想法是:在502认证考试中,在不同的上下文中,PageFunction会出现多次。这就是为什么我使用“WPF解决方案”这句话的原因:)这很好,唯一需要注意的是,该应用程序需要是一个“导航应用程序”,可能是WPF的先辈们认为,如果你需要从对话框中获取一些东西,你无论如何都隐含在导航上下文中。我们的想法是:在502认证考试中,在不同的上下文中,PageFunction会出现多次。这就是我使用“WPF解决方案”这一短语的原因: