更新绑定

时间:2015-05-23 12:37:05

标签: c# wpf xaml mvvm

我有一个正方形(瓷砖)网格。他们每个人都有一个颜色。 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)时,通常会有一些瓷砖颜色发生变化。代码工作得很好,但视觉颜色更新并没有发生。

有一个简单的解决方案吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您的ViewModel需要实现接口INotifyPropertyChanged来更新绑定。

您可以使用以下方法引发PropertyChanged事件:

protected void raisePropertyChanged(string propertyName)
{
    if (PropertyChanged != null)
        PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}

每次属性更改时,使用属性名称作为字符串调用此方法。