Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.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/13.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# 与GUI通信_C#_Wpf - Fatal编程技术网

C# 与GUI通信

C# 与GUI通信,c#,wpf,C#,Wpf,我正在开发一个用C#编写的小应用程序。GUI由XAML/WPF组成。 这一点也不奇怪。用户输入一些设置,按下按钮,等待事情发生。然而,随着应用程序在过去几周的增长,代码变得越来越糟糕。真糟糕。在我觉得不属于他们的地方进行的固定。它正在慢慢变成一个地狱。在不久的将来,该应用程序仍将有很大的发展 我非常希望将其重构为更成熟、可维护的代码。如果不是为了更好地编码和设计应用程序 由于用户没有真正的方式知道实际发生的事情,我计划添加一个状态栏,显示一些重要的事情,这样用户至少对发生的事情有一些了解 现在,

我正在开发一个用C#编写的小应用程序。GUI由XAML/WPF组成。 这一点也不奇怪。用户输入一些设置,按下按钮,等待事情发生。然而,随着应用程序在过去几周的增长,代码变得越来越糟糕。真糟糕。在我觉得不属于他们的地方进行的固定。它正在慢慢变成一个地狱。在不久的将来,该应用程序仍将有很大的发展

我非常希望将其重构为更成熟、可维护的代码。如果不是为了更好地编码和设计应用程序

由于用户没有真正的方式知道实际发生的事情,我计划添加一个状态栏,显示一些重要的事情,这样用户至少对发生的事情有一些了解

现在,我该怎么做呢。我的gui实例化了一些对象,而这些对象又实例化了其他对象。我可以通过应用程序传递对gui窗口的引用,但这太脏了。你们推荐什么


我一直在研究MVVM,但我不确定这是否是我需要的。有什么帮助吗?

当然,你需要MVVM来整理一切,但你面临的是一个常见的学习过程

尽可能多地阅读有关MVVM和OOP的内容(如果您不太精通OOP,请关注OOP),并使用它,直到您对所编写的代码感到非常满意为止(您可能需要几年才能达到这一水平)


你面前有一条令人惊叹的道路。

当然,你需要MVVM来安排一切,但你面临的是共同的学习过程

尽可能多地阅读有关MVVM和OOP的内容(如果您不太精通OOP,请关注OOP),并使用它,直到您对所编写的代码感到非常满意为止(您可能需要几年才能达到这一水平)


您面前有一条令人惊叹的道路。

MVVM确实是构建代码以提高可维护性的一种方法。我现在已经使用它一段时间了,它是一种非常自然的、低阻抗的方式来组合一些代码,其中包含一些内置的关注点分离

还要注意,您也可以使MVVM难看。它仍然可以归结为在代码级别遵循一些适当的实践


不断地迭代代码,直到它让你感觉像是你不怕让别人看的东西。

MVVM确实是构建代码以提高可维护性的一种方法。我现在已经使用它一段时间了,它是一种非常自然的、低阻抗的方式来组合一些代码,其中包含一些内置的关注点分离

还要注意,您也可以使MVVM难看。它仍然可以归结为在代码级别遵循一些适当的实践


不断迭代代码,直到感觉它像是你不怕别人看的东西。

是的,MVVM是解决方案的一种方法


一般来说,您可能会想到和事件。它可以帮助您启用任何对象来通知他们不知道的GUI。

是的,MVVM是解决方案的一种方法


一般来说,您可能会想到和事件。它可以帮助您启用任何对象来通知他们不知道的GUI。

您可以使用MVVM来解决耦合问题是的

通过适当的数据和绑定,您可以让状态保持在重载类中

您可以使用一个只表示当前是否工作的bool,或者添加一个描述状态的字符串,或者为可以使用转换器测试的结果添加一个可为空的类型,等等


从MVVM的角度来看,您还有一个Messenger工具,可以用另一种方式解决问题。你会广播举重运动员的状态变化,而不管是谁在听(脱钩)。此模式有几个名称和变体(观察者、订阅、信号等)

您可以使用MVVM解决耦合问题是的

通过适当的数据和绑定,您可以让状态保持在重载类中

您可以使用一个只表示当前是否工作的bool,或者添加一个描述状态的字符串,或者为可以使用转换器测试的结果添加一个可为空的类型,等等

从MVVM的角度来看,您还有一个Messenger工具,可以用另一种方式解决问题。你会广播举重运动员的状态变化,而不管是谁在听(脱钩)。此模式有几个名称和变体(观察者、订阅、信号等)