Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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# MVVM(WPF)中的命令——如何返回布尔值?_C#_Wpf_Mvvm - Fatal编程技术网

C# MVVM(WPF)中的命令——如何返回布尔值?

C# MVVM(WPF)中的命令——如何返回布尔值?,c#,wpf,mvvm,C#,Wpf,Mvvm,我有两个应用程序,比如app1和app2 我正在将app2托管到app1。 我在app1上有1个工具栏、托管的app1视图和状态栏。 现在我在工具栏按钮上绑定命令,这些命令在app1视图中实现。 现在app1想知道是否执行了该操作,所以app2需要通知app1该操作已执行并更新状态栏, 但如何使用命令返回布尔值呢? 图1解释了场景 我不确定这是否适合你。这是我发现的东西。其思想是您有一种类型的icommand,它有一个附加属性和一个事件。此额外属性是您的返回类型。在运行功能之前,请将侦听器附加到

我有两个应用程序,比如app1和app2 我正在将app2托管到app1。 我在app1上有1个工具栏、托管的app1视图和状态栏。 现在我在工具栏按钮上绑定命令,这些命令在app1视图中实现。 现在app1想知道是否执行了该操作,所以app2需要通知app1该操作已执行并更新状态栏, 但如何使用命令返回布尔值呢? 图1解释了场景

我不确定这是否适合你。这是我发现的东西。其思想是您有一种类型的icommand,它有一个附加属性和一个事件。此额外属性是您的返回类型。在运行功能之前,请将侦听器附加到命令中的新事件,以便在功能完成时可以相应地响应

另一个想法是做一些类似棱镜或MVVMLight的事情。它们具有在系统中传递事件的机制。MVVMLight调用事件聚合器


我在过去使用过这两种方法。在我看来,事件聚合器1很不错,因为它可以轻松解决其他几个通信问题。小心别用太多。这肯定是一个拐杖。

我不确定这是否对你有用。这是我发现的东西。其思想是您有一种类型的icommand,它有一个附加属性和一个事件。此额外属性是您的返回类型。在运行功能之前,请将侦听器附加到命令中的新事件,以便在功能完成时可以相应地响应

另一个想法是做一些类似棱镜或MVVMLight的事情。它们具有在系统中传递事件的机制。MVVMLight调用事件聚合器

我在过去使用过这两种方法。在我看来,事件聚合器1很不错,因为它可以轻松解决其他几个通信问题。小心别用太多。它当然可以是拐杖。

您可以使用或。
对于本地执行,建议使用匿名管道,其中命名管道允许网络中的跨计算机通信

您的执行顺序应如下所示:

  • APP1创建管道的“服务器实例”
  • APP1通过您的命令启动APP2
  • APP2执行它的任务
  • APP2通过匿名管道作为客户端连接到APP1
  • APP2通过管道将其结果发送给APP1
  • 请注意:

    • APP1应始终意识到这样一个事实,即APP2可能不会通过管道返回任何内容。因此,在启动APP2之后,APP1不应处于不一致的状态
    • APP1收到APP2的结果后,APP1应关闭管道的服务器端
    您可以使用或。
    对于本地执行,建议使用匿名管道,其中命名管道允许网络中的跨计算机通信

    您的执行顺序应如下所示:

  • APP1创建管道的“服务器实例”
  • APP1通过您的命令启动APP2
  • APP2执行它的任务
  • APP2通过匿名管道作为客户端连接到APP1
  • APP2通过管道将其结果发送给APP1
  • 请注意:

    • APP1应始终意识到这样一个事实,即APP2可能不会通过管道返回任何内容。因此,在启动APP2之后,APP1不应处于不一致的状态
    • APP1收到APP2的结果后,APP1应关闭管道的服务器端

    一种可能的解决方案是使用
    Result
    属性定义一个参数类,该属性将在执行代码中设置,然后在调用代码中检索,非常类似于事件(在WPF UI设计中,所有命令主要用作事件的替代品之后).

    一种可能的解决方案是使用
    Result
    属性定义一个参数类,该属性将在执行代码中设置,然后在调用代码中检索,非常类似于事件(在WPF UI设计中,所有命令主要用作事件的替代品之后).

    您的应用程序2是否在完成其作业后关闭?或者它会保持打开状态?您可以控制这两个应用程序的源代码吗?都在C#NET中?是的,我可以更改这两个应用程序的源代码。app1是wpf,app2是win FORM您的app2在完成其作业后是否关闭?或者它会保持打开状态?您可以控制这两个应用程序的源代码吗?都在C#NET中?是的,我可以更改这两个应用程序的源代码。app1是wpf,app2是win FORM,我想你没有正确理解这个问题。公平地说,这个问题也不是很清楚,不是一个琐碎的话题。是的,一开始我觉得他在寻找一个多应用MEF的东西。它很酷,它不像是真的有任何drawnack来误解这个问题。我也可以回答这个问题,但我们都得睡一觉。我想你没有正确理解这个问题。公平地说,这个问题也不是很清楚,不是一个琐碎的问题。是的,一开始他好像在找一个多应用MEF的东西。它很酷,它不像是真的有任何drawnack来误解这个问题。我也可以回答这个问题,但我们都得睡一会儿。是的,我也在想这个问题。我可以在app2中定义命令的地方创建属性,而不是在新类中创建属性。我可以在app2中定义命令的地方创建属性,而不是在新类中创建属性。