C# 接收中的XAML按钮名称
我在一个页面上有大约100个文本框,每个文本框在一个数组中都有自己相应的值,每个文本框都有一个方法,当文本框中的值发生更改时调用该方法,并更新数组中相应的元素,以反映它被更改的值。(理论上) 但是,是否有一种方法可以调整下面的方法,使其不必写100次,而是通过更改名称“\u 8\u TextChanged”,并手动更改其更改的值,从而使所有文本框调用1个方法,并且该方法识别调用它的文本框,并更新数组中的相关元素 该方法在下面进行了定义,并在“Solver.xaml.cs”页面上提供了一些功能C# 接收中的XAML按钮名称,c#,xaml,windows-8,textbox,parameter-passing,C#,Xaml,Windows 8,Textbox,Parameter Passing,我在一个页面上有大约100个文本框,每个文本框在一个数组中都有自己相应的值,每个文本框都有一个方法,当文本框中的值发生更改时调用该方法,并更新数组中相应的元素,以反映它被更改的值。(理论上) 但是,是否有一种方法可以调整下面的方法,使其不必写100次,而是通过更改名称“\u 8\u TextChanged”,并手动更改其更改的值,从而使所有文本框调用1个方法,并且该方法识别调用它的文本框,并更新数组中的相关元素 该方法在下面进行了定义,并在“Solver.xaml.cs”页面上提供了一些功能 p
private void\u 8\u TextChanged(对象发送者,textchangedventargs e)
{
int number=int.Parse(_8_8.Text);
如果((number>=1)&&(number我真的希望您有充分的理由使用这么多文本框。在任何情况下,您都可以对所有TextChange事件使用相同的事件处理程序,如下所示
所有文本框都将设置为使用相同的处理程序:
<TextBox x:Name="_8_8" TextChanged="_x_y_TextChanged"/>
<TextBox x:Name="_8_9" TextChanged="_x_y_TextChanged"/>
然后,您可以根据发送文本框更新阵列:
private void _x_y_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox tb = (TextBox)sender;
// use the Name of the textbox to determine x, y value
string[] tmp_x_y = tb.Name.Split("_");
// you may have to adjust these indices based on how Split actually
// does its work.
int x = int.Parse(tmp_x_y[0]);
int y = int.Parse(tmp_x_y[1]);
int number = int.Parse(tb.Text);
if ((number >= 1) && (number <= 9))
{
for (int i = 0; i <= 8; i++)
{
if (i == (number - 1))
{
content[x, y, i] = true;
}
else
{
content[x, y, i] = false;
}
}
}
}
private void\u x\u y\u TextChanged(对象发送者,textchangedventargs e)
{
文本框tb=(文本框)发送方;
//使用文本框的名称确定x,y值
字符串[]tmp_x_y=tb.Name.Split(“”);
//您可能需要根据实际拆分的方式调整这些索引
//做它的工作。
int x=int.Parse(tmp_x_y[0]);
int y=int.Parse(tmp_x_y[1]);
int number=int.Parse(tb.Text);
如果((number>=1)&&(number我真的希望您有充分的理由使用这么多文本框。在任何情况下,您都可以对所有TextChange事件使用相同的事件处理程序,如下所示
所有文本框都将设置为使用相同的处理程序:
<TextBox x:Name="_8_8" TextChanged="_x_y_TextChanged"/>
<TextBox x:Name="_8_9" TextChanged="_x_y_TextChanged"/>
然后,您可以根据发送文本框更新阵列:
private void _x_y_TextChanged(object sender, TextChangedEventArgs e)
{
TextBox tb = (TextBox)sender;
// use the Name of the textbox to determine x, y value
string[] tmp_x_y = tb.Name.Split("_");
// you may have to adjust these indices based on how Split actually
// does its work.
int x = int.Parse(tmp_x_y[0]);
int y = int.Parse(tmp_x_y[1]);
int number = int.Parse(tb.Text);
if ((number >= 1) && (number <= 9))
{
for (int i = 0; i <= 8; i++)
{
if (i == (number - 1))
{
content[x, y, i] = true;
}
else
{
content[x, y, i] = false;
}
}
}
}
private void\u x\u y\u TextChanged(对象发送者,textchangedventargs e)
{
文本框tb=(文本框)发送方;
//使用文本框的名称确定x,y值
字符串[]tmp_x_y=tb.Name.Split(“”);
//您可能需要根据实际拆分的方式调整这些索引
//做它的工作。
int x=int.Parse(tmp_x_y[0]);
int y=int.Parse(tmp_x_y[1]);
int number=int.Parse(tb.Text);
如果((编号>=1)和&(编号