C# MVVM(WPF)中的命令——如何返回布尔值?
我有两个应用程序,比如app1和app2 我正在将app2托管到app1。 我在app1上有1个工具栏、托管的app1视图和状态栏。 现在我在工具栏按钮上绑定命令,这些命令在app1视图中实现。 现在app1想知道是否执行了该操作,所以app2需要通知app1该操作已执行并更新状态栏, 但如何使用命令返回布尔值呢? 图1解释了场景C# MVVM(WPF)中的命令——如何返回布尔值?,c#,wpf,mvvm,C#,Wpf,Mvvm,我有两个应用程序,比如app1和app2 我正在将app2托管到app1。 我在app1上有1个工具栏、托管的app1视图和状态栏。 现在我在工具栏按钮上绑定命令,这些命令在app1视图中实现。 现在app1想知道是否执行了该操作,所以app2需要通知app1该操作已执行并更新状态栏, 但如何使用命令返回布尔值呢? 图1解释了场景 我不确定这是否适合你。这是我发现的东西。其思想是您有一种类型的icommand,它有一个附加属性和一个事件。此额外属性是您的返回类型。在运行功能之前,请将侦听器附加到
我不确定这是否适合你。这是我发现的东西。其思想是您有一种类型的icommand,它有一个附加属性和一个事件。此额外属性是您的返回类型。在运行功能之前,请将侦听器附加到命令中的新事件,以便在功能完成时可以相应地响应 另一个想法是做一些类似棱镜或MVVMLight的事情。它们具有在系统中传递事件的机制。MVVMLight调用事件聚合器
我在过去使用过这两种方法。在我看来,事件聚合器1很不错,因为它可以轻松解决其他几个通信问题。小心别用太多。这肯定是一个拐杖。我不确定这是否对你有用。这是我发现的东西。其思想是您有一种类型的icommand,它有一个附加属性和一个事件。此额外属性是您的返回类型。在运行功能之前,请将侦听器附加到命令中的新事件,以便在功能完成时可以相应地响应 另一个想法是做一些类似棱镜或MVVMLight的事情。它们具有在系统中传递事件的机制。MVVMLight调用事件聚合器 我在过去使用过这两种方法。在我看来,事件聚合器1很不错,因为它可以轻松解决其他几个通信问题。小心别用太多。它当然可以是拐杖。您可以使用或。
对于本地执行,建议使用匿名管道,其中命名管道允许网络中的跨计算机通信 您的执行顺序应如下所示:
- APP1应始终意识到这样一个事实,即APP2可能不会通过管道返回任何内容。因此,在启动APP2之后,APP1不应处于不一致的状态
- 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中定义命令的地方创建属性,而不是在新类中创建属性。