我有一个正方形(瓷砖)网格。他们每个人都有一个颜色。 Player1 =黑色,Player2 =白色,没有玩家= Transparant,如果他们是没有玩家但没有玩家但是有效移动的方块,则该方块的颜色为SkyBlue。
我在pastebin上有代码,因为它很多。
TileviewModel:http://pastebin.com/b9kbuN5d 这是每个单独图块的视图模型。
PlayerToColorTileConvertor:http://pastebin.com/1HXu083Q 我使用转换器将视图模型中的字符串单词转换为UI的颜色。
ReversiBoard:http://pastebin.com/fHdCEB9k 这是xaml代码。
问题:我有一个包含64个这些图块的网格。它们各有一种颜色,如上所述。当我点击SkyBlue按钮(xaml代码中的eclipse)时,通常会有一些瓷砖颜色发生变化。代码工作得很好,但视觉颜色更新并没有发生。
有一个简单的解决方案吗?
感谢。
答案 0 :(得分:1)
您的ViewModel
需要实现接口INotifyPropertyChanged
来更新绑定。
您可以使用以下方法引发PropertyChanged
事件:
protected void raisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
每次属性更改时,使用属性名称作为字符串调用此方法。