我在一个15 * 15的uniformgrid中安排的ItemsControl中有225个三个状态切换按钮(Off,Vertical,Horizontal)。有没有办法找到选中的按钮,检查状态和位置?只是一点点背景,我正在做类似拼字游戏的游戏。
例如。我怎样才能找到红场的状态和位置?
非常感谢
答案 0 :(得分:1)
我会通过DataBinding解决这个问题(就像其他一切一样)。
让我们首先定义我们的viewmodel:
public class ScrabbleViewModel
{
readonly bool[,] matrix = new bool[15,15];
public bool[,] GameMatrix
{
get { return matrix; }
}
}
并将其分配给您的usercontrol或窗口并创建复选框:
public partial class GameWindow : Window
{
public GameWindow()
{
InitializeComponent();
this.DataContext = new ScrabbleViewModel();
CreateCheckBoxes();
}
void CreateCheckBoxes()
{
for(int y=0;y<15;y++)
{
for (int x = 0; x < 15; x++)
{
var chk = new CheckBox();
chk.SetValue(Grid.RowProperty, y);
chk.SetValue(Grid.ColumnProperty, x);
var binding = new Binding(string.Format("GameMatrix[{0},{1}]", y, x));
binding.Mode = BindingMode.TwoWay;
chk.SetBinding(CheckBox.IsCheckedProperty, binding);
grid.Children.Add(chk);
}
}
}
}
答案 1 :(得分:0)
你应该能够遍历ItemsControl的子控件,然后循环中的每个项目,检查按钮的状态以及是否选中它,然后检索它的位置。
此链接有助于: