我的网格包含一个绑定到二维单元格数组的 ItemsControl。
此 ItemsControl ItemTemplate 包含另一个启用此二维绑定的 ItemsControl。
最终,我的二维数组中的每个单元格都显示为一个椭圆。每个椭圆的颜色都绑定到单元格的枚举属性。
当我第一次分配二维数组并设置绑定的 dataContext 时 - 它工作正常。
但是,在我更新我的数组并引发我的 PropertyChanged 事件后,绑定不会响应此事件。
我已经阅读了一些关于这个错误的可能性,我的更新过程只更新了每个单元格的枚举属性。这意味着二维数组不会在每次更新时重新分配,而是会更改其单元格内部数据。
在引发 PropertyChanged 并且绑定确实正常工作之前,我确实尝试过重新分配我的数组。
这可能是原因吗?我真的应该在每次更新时重新分配或更改我的阵列地址吗?
下面是我的绑定 Xaml:
<ItemsControl Name="Board" ItemTemplate="{DynamicResource DataTemplate_Level1}"
ItemsSource="{Binding
Path=GameBoard,
UpdateSourceTrigger=PropertyChanged,
diag:PresentationTraceSources.TraceLevel=High}" />
这是源属性:
private Cell[][] GameBoard
{ get { return m_GameBoard;} }
这是手动 PropertyChange 提升:
protected void raisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}