1

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

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

我需要这样,在文本框中更改值后,我可以在画布上进行一些操作,即如果我写一个值,画布中的一条线会沿某个方向移动该值。要管理的事件存在于 Page 类中,但 Canvas 位于 Window 类中。那么如何从 Window 类之外管理画布呢?或者我需要更改 Window 的布局并且不使用 Frame 来包含带有文本框的页面?有什么建议吗?

谢谢

4

1 回答 1

1

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

  1. 您可以将事件从 Page 类内部一直冒泡到您的 Window。
  2. 您可以在创建时将 Canvas 对象向下传递到 Page 类。
  3. 如果您使用 MVVM 或类似的东西,您可以使用大多数 MVVM 工具包中提供的消息传递框架。
  4. 我敢肯定还有很多其他的选择,人们会加入。

就个人而言,我最喜欢 3,但如果你还不熟悉 MVVM 和工具包,那对你来说可能有点矫枉过正。

于 2013-07-23T13:31:27.967 回答