更新绑定

本文关键字:绑定 更新 | 更新日期: 2023-09-27 17:50:27

我有一个正方形(瓷砖)的网格。它们每个都有一种颜色。Player1 =黑色,Player2 =白色,没有玩家=透明,如果他们是一个没有玩家的方块,但它是一个有效的移动,方块的颜色是SkyBlue。

我把代码放在pastebin上,因为它太多了。

TileviewModel: http://pastebin.com/b9kbuN5d这是每个单独tile的视图模型。

PlayerToColorTileConvertor: http://pastebin.com/1HXu083Q我使用转换器将字符串从视图模型转换为UI的颜色。

ReversiBoard: http://pastebin.com/fHdCEB9k这是xaml代码。

问题:我有一个包含64个这样瓷砖的网格。它们都有一种颜色,就像我上面说的。当我点击SkyBlue按钮(xaml代码中的eclipse)时,通常会有一些tile的颜色发生变化。代码工作得很好,但是视觉颜色的更新还没有开始。

有简单的解决方案吗?

谢谢。

更新绑定

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

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

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

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