2009-02-21 48 views
0

我正在尝试在WPF中创建一个sukodu(像填字游戏)播放器,并且我意识到我有一大堆控件需要了解数独网格的功能。WPF依赖项属性问题...需要在这个特定的场景中做什么的建议:

因此,我认为数独网格对象将是一个很好的候选人来创建一个依赖属性。我即将开始工作,但我有一些挥之不去的问题:

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

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

OR

其设置为一个附加属性,在主窗口中定义,并允许孩子用户控制设置相应的?

我真的不希望子控件被允许设置自己的网格属性值,所以在这个时候我倾向于共享依赖属性,但我不确定它是否做我认为它。

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

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

+0

Coding4Fun有一个数独游戏 - http://blogs.msdn.com/coding4fun/archive/2006/11/06/999502。 ASPX – bendewey 2009-02-21 02:35:25

回答

1

我想你想要的是一个带有Inherited FrameworkPropertyOption的附加属性。我们每个想要了解网格的控件都可以通过获取附加属性的值(假设它在树中设置得更高)来找到网格。文章去附加的属性,以及如何设置它们。

另外,您可能会尝试模型视图视图模型(MVVM)模式,并将Sudoku网格实现为视图模型类,其中每个单元格都是一个合适的视图模型类。这样,整个数独游戏就完全从UI分离出来,并且UI可以使用适当的数据模板绑定到它。

有关MVVM模式的更多信息瑟如下: http://www.codeproject.com/KB/WPF/MVCtoUnitTestinWPF.aspx http://blogs.msdn.com/johngossman/archive/2005/10/08/478683.aspx