我试图了解 Windows 商店示例中的示例游戏之一是如何工作的。特别是这个
http://code.msdn.microsoft.com/windowsapps/Reversi-XAMLC-sample-board-816140fa
我了解大部分情况(我认为),但我真的不知道这里发生了什么:
boardSpace.SetBinding(BoardSpace.SpaceStateProperty,
new Binding { Path = new PropertyPath(String.Format("[{0},{1}]", row, column)) });
我不明白 PropertyPath 到底绑定了什么。它似乎正在形成一些 2D 数组,因此它将 SpaceStateProperty 从游戏模型视图绑定到此 PropertyPath 但是如何将 [0,1] 或 [2, 2] 转换为某些特定实例或路径?
下一行更有意义: boardSpace.SetBinding(BoardSpace.CommandProperty, new Binding { Path = new PropertyPath("MoveCommand") });
这些将 BoardSpacebutton CommandProperty 绑定到在 GameViewModel 中公开的 MoveCommand 委托
现在我发现了一个像这样暴露的函数
public BoardSpaceState this[String index]
属性路径是否会绑定到 this 函数,因为它需要一个字符串,而 PropertyPath 只是一个字符串 [x,y]?它是怎么知道的?
我觉得我错过了关于 PropertyPath 工作方式的一个微妙部分,但阅读文档并没有多大意义。
我很感激任何帮助