Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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/9/blackberry/2.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# wpf c:窗口、页面和事件_C#_Wpf_Events_Window - Fatal编程技术网

C# wpf c:窗口、页面和事件

C# wpf c:窗口、页面和事件,c#,wpf,events,window,C#,Wpf,Events,Window,在基于C的WPF项目中,我有一个带有画布的窗口,一个带有一些元素和框架的树状视图。框架用于包含一个页面,该页面根据选定的treeview元素进行更改。 在页面中,我有一些文本框,可以在其中写入双值 也就是说,如果我选择树的第一个元素,加载的页面是Page1,其中有2个文本框;如果我选择第二个元素,加载的页面是Page2,其中有3个文本框 我需要的是,在更改textbox中的值后,我可以在画布上执行一些操作,即,如果我写入一个值,画布中的一行将按该值向特定方向移动。 要管理的事件存在于Page类中

在基于C的WPF项目中,我有一个带有画布的窗口,一个带有一些元素和框架的树状视图。框架用于包含一个页面,该页面根据选定的treeview元素进行更改。 在页面中,我有一些文本框,可以在其中写入双值

也就是说,如果我选择树的第一个元素,加载的页面是Page1,其中有2个文本框;如果我选择第二个元素,加载的页面是Page2,其中有3个文本框

我需要的是,在更改textbox中的值后,我可以在画布上执行一些操作,即,如果我写入一个值,画布中的一行将按该值向特定方向移动。 要管理的事件存在于Page类中,但画布位于Window类上。那么,如何从窗口类外部管理画布呢? 或者我需要改变窗口的布局,不使用框架来包含带有文本框的页面? 有什么建议吗


谢谢

根据您的设置,有多种选择

您可以将事件从Page类内部冒泡到窗口。 创建画布对象时,可以将其向下传递到Page类中。 如果您使用的是MVVM或类似的工具,那么您可以使用大多数MVVM工具包中提供的消息传递框架。 我相信人们还会有很多其他选择。
就我个人而言,我最喜欢3,但是如果您还不熟悉MVVM和工具包,那么这对您来说可能太过分了。

根据您的设置,有几个选项

您可以将事件从Page类内部冒泡到窗口。 创建画布对象时,可以将其向下传递到Page类中。 如果您使用的是MVVM或类似的工具,那么您可以使用大多数MVVM工具包中提供的消息传递框架。 我相信人们还会有很多其他选择。
就个人而言,我最喜欢3,但是如果你还不熟悉MVVM和工具包,那对你来说可能太过分了。

我从来没有使用过MVVM及其工具包……现在我认为我的项目太大了,以至于无法改变它的开发模式。。。您对更改窗口模式、删除框架以及使用其他技术创建包含n个文本框的动态部分有何看法?@FrancescoDS为什么不将画布对象传递给页面?如果我将画布传递给页面,是否也需要将绘图方法移到页面?在将画布放入页面之前,我将其移出,因为我需要根据窗口大小自动调整画布大小。所以我不知道创建这种窗口的最佳实践是什么我从来没有使用过MVVM和它的工具包…现在我认为我的项目太大了以至于改变了它的开发模式。。。您对更改窗口模式、删除框架以及使用其他技术创建包含n个文本框的动态部分有何看法?@FrancescoDS为什么不将画布对象传递给页面?如果我将画布传递给页面,是否也需要将绘图方法移到页面?在将画布放入页面之前,我将其移出,因为我需要根据窗口大小自动调整画布大小。所以我不知道创建这种窗口的最佳实践是什么