ItemsControl子事件WPF C#
我在ItemsControl中有225个三状态切换按钮(关闭、垂直、水平),以15*15 uniformgrid排列。有没有办法找到选中按钮、选中状态和位置?只是一点背景我正在做一个类似拼字游戏的游戏 我怎样才能知道红场的状况和位置ItemsControl子事件WPF C#,c#,wpf,xaml,C#,Wpf,Xaml,我在ItemsControl中有225个三状态切换按钮(关闭、垂直、水平),以15*15 uniformgrid排列。有没有办法找到选中按钮、选中状态和位置?只是一点背景我正在做一个类似拼字游戏的游戏 我怎样才能知道红场的状况和位置 当用户点击互动程序时,我想触发一个事件,程序会记录它的索引,例如57或7,3 然后,当用户输入他们的单词时,是否可以在切换按钮状态(垂直、水平)的方向上实时预览字符?但是,是否尚未写入ItemsControl绑定到的ObservableCollection中 非常
非常感谢您应该能够通过ItemsControl的子控件进行循环,然后对于循环中的每个项目,检查按钮的状态,如果选中,则检索其位置 此链接将有助于:
您应该能够在ItemsControl的子控件之间循环,然后对于循环中的每个项目,检查按钮的状态,如果选中,则检索其位置 此链接将有助于: 我会通过数据绑定解决这个问题(就像其他问题一样) 让我们首先定义viewmodel:
public class ScrabbleViewModel
{
readonly bool[,] matrix = new bool[15,15];
public bool[,] GameMatrix
{
get { return matrix; }
}
}
并将其分配给用户控件或窗口,然后创建复选框:
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);
}
}
}
}
公共部分类游戏窗口:窗口
{
公共游戏窗口()
{
初始化组件();
this.DataContext=新的ScrabbleViewModel();
创建复选框();
}
void createcheckbox()
{
对于(inty=0;y,我会通过数据绑定来解决这个问题(和其他问题一样)
让我们首先定义viewmodel:
public class ScrabbleViewModel
{
readonly bool[,] matrix = new bool[15,15];
public bool[,] GameMatrix
{
get { return matrix; }
}
}
并将其分配给用户控件或窗口,然后创建复选框:
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);
}
}
}
}
公共部分类游戏窗口:窗口
{
公共游戏窗口()
{
初始化组件();
this.DataContext=新的ScrabbleViewModel();
创建复选框();
}
void createcheckbox()
{
对于(int y=0;yy你只能取出你放进去的东西。你有没有在你的方块上附加任何东西来标识它们的顺序?你可以找到方块的x/y位置,但这不一定是一种可靠或可维护的方法。你只能取出你放进去的东西。你有没有在方块上附加任何东西来标识它们的顺序?您可以找到正方形的x/y位置,但这不一定是一种可靠或可维护的方法。