WPF绑定到2D数组



我一直在学习WPF和MVVM。我正在尝试创建一个国际象棋游戏。我将游戏状态呈现为2D (8x8)的棋子数组。该单板显示为64个元素的全局统一网格。每次游戏状态改变时,我循环遍历游戏状态数组,并相应地更新所显示棋盘上的每个方格。是否有更好(更WPF)的方法来做到这一点?我认为我可以以某种方式将显示的棋盘上的每个方块绑定到游戏状态,并定义一个可以访问数组的值转换器,但我真的不知道如何做到这一点。我很感激你的帮助。

也许切换到使用ObservableCollection和绑定它,说一个ListBox的ItemsSource属性。还要考虑扩展集合类以支持2d索引器,这样您就可以像处理2d数组一样操作单元格:

public class ObservableCollectionC<T> : ObservableCollection<T>{
public ObservableCollectionC(IEnumerable<T> p) : base(p){ }
public T this[int m, int n]{
get  { return this[m*8+n]; }
set  { this[m*8+n] = value; }
}
}

最新更新