0

我正在尝试在 WPF 中创建一个数独(如填字游戏)播放器,我意识到我有一大堆控件需要知道数独网格才能运行。

正因为如此,我认为 Sudoku Grid 对象将是创建依赖属性的良好候选者。我即将开始工作,但我有一些挥之不去的问题:

  1. 谁应该拥有 SudokuGrid 依赖属性?我在想主窗口 UI 元素应该。

  2. 我是否应该将其设置为共享依赖属性,其中代表数独网格一部分的所有用户控件只需通过 .AddOwner() 方法将自己添加到属性中?

或者

将其设置为附加属性,在主窗口中定义,并允许子用户控件进行相应设置?

我真的不希望允许子控件设置他们自己的网格属性值,所以此时我倾向于共享依赖属性,但我不确定它是否符合我的想法。

最终我想要的是一个属性,如果它设置在父 UI 元素上,所有知道该属性的子 UI 元素将共享相同的值,覆盖任何先前的值/设置。共享依赖会这样做吗?

我知道这有点啰嗦,但任何帮助将不胜感激!

4

1 回答 1

1

我认为您想要的是带有 Inherits FrameworkPropertyOption 的附加属性。我们每个想要了解网格的控件都可以通过获取附加属性的值来找到网格(假设它在树中设置得更高)。本文介绍了附加属性以及如何设置它们。

或者,您可能想尝试模型视图视图模型 (MVVM) 模式并将数独网格实现为视图模型类,其中每个单元格都是一个单独的视图模型类。这样,整个数独谜题就与 UI 完全分离,UI 可以使用适当的数据模板绑定到它。

有关 MVVM 模式的更多信息,请参阅以下内容:http: //www.codeproject.com/KB/WPF/MVCtoUnitTestinWPF.aspx http://blogs.msdn.com/johngossman/archive/2005/10/08/478683。 aspx

于 2009-02-21T07:08:13.653 回答