数据上下文类:
class ImageHandler : INotifyPropertyChanged
{
bool[] directions = new bool[8];
public bool[] Directions { get { return directions; } }
// ...
}
XAML:
<UniformGrid Columns="8">
<CheckBox Content=" N" IsChecked="{Binding Path=Directions[0]}" Click="CheckBox_Click"/>
<CheckBox Content="NW" IsChecked="{Binding Path=Directions[1]}" Click="CheckBox_Click"/>
<CheckBox Content=" W" IsChecked="{Binding Path=Directions[2]}" Click="CheckBox_Click"/>
<!-- ... -->
</UniformGrid>
后面的代码:
private void CheckBox_Click(object sender, RoutedEventArgs e)
{
imageHandler.UpdateImage();
}
所以,我在数据上下文类中有布尔数组,还有 8 个复选框,绑定到每个数组成员。Click 事件处理程序根据新的directions
数组状态重新计算图像。如何更改此代码以删除CheckBox_Click
事件处理程序,使其根据 MVVM 模式工作?我需要一种方法来检测数组中所做的更改directions
,而无需编写事件处理程序。