C# 接收中的XAML按钮名称

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

我在一个页面上有大约100个文本框,每个文本框在一个数组中都有自己相应的值,每个文本框都有一个方法,当文本框中的值发生更改时调用该方法,并更新数组中相应的元素,以反映它被更改的值。(理论上)

但是,是否有一种方法可以调整下面的方法,使其不必写100次,而是通过更改名称“\u 8\u TextChanged”,并手动更改其更改的值,从而使所有文本框调用1个方法,并且该方法识别调用它的文本框,并更新数组中的相关元素

该方法在下面进行了定义,并在“Solver.xaml.cs”页面上提供了一些功能

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)和&(编号