Xamarin表格条目

Xamarin表格条目,xamarin,xamarin.forms,Xamarin,Xamarin.forms,如何找到已更改的条目 <Entry x:Name="one" Keyboard="Numeric" TextChanged="Entry_TextChanged" /> <Entry x:Name="two" Keyboard="Numeric" TextChanged="Entry_TextChanged" /> <Entry x:Name=&q

如何找到已更改的条目

<Entry x:Name="one" Keyboard="Numeric" TextChanged="Entry_TextChanged" />
<Entry x:Name="two" Keyboard="Numeric" TextChanged="Entry_TextChanged" />
<Entry x:Name="tre" Keyboard="Numeric" TextChanged="Entry_TextChanged" />

private void Entry_TextChanged(object sender, TextChangedEventArgs e)
{
    //which entry's value has changed (x:Name)
}

私有无效条目\u TextChanged(对象发送者,textchangedventargs e)
{
//哪个条目的值已更改(x:Name)
}
有什么办法可以找到吗?

检查发件人

private void Entry_TextChanged(object sender, TextChangedEventArgs e)
{
    //which entry's value has changed (x:Name)
    Entry theTextBox = (Entry)sender;
    Console.WriteLine(theTextBox.Name) + " changed the value");
}

当然,但我想知道哪个条目被更改了。一两个或三个

您无法访问xaml元素的x:Name属性,因为这只是编译器命名变量的提示

您可以设置条目的ClassId,以便在处理程序中检索它。像这样:

 <Entry
            x:Name="one"
            ClassId="entry1"
            Keyboard="Numeric"
            TextChanged="Entry_TextChanged" />
        <Entry
            x:Name="two"
            ClassId="entry2"
            Keyboard="Numeric"
            TextChanged="Entry_TextChanged" />
        <Entry
            x:Name="tre"
            ClassId="entry3"
            Keyboard="Numeric"
            TextChanged="Entry_TextChanged" />

 private void Entry_TextChanged(object sender, TextChangedEventArgs e)
    {
        var entry = (Entry)sender;
        if(entry.ClassId==one.ClassId)
        {
            Console.WriteLine("you are in one entry");
        }
        else if(entry.ClassId==two.ClassId)
        {
            Console.WriteLine("you are in two entry");
        }
        else
        {
            Console.WriteLine("you are in three entry");
        }
        
    }

私有无效条目\u TextChanged(对象发送者,textchangedventargs e)
{
var条目=(条目)发送方;
if(entry.ClassId==1.ClassId)
{
Console.WriteLine(“您在一个条目中”);
}
else if(entry.ClassId==two.ClassId)
{
Console.WriteLine(“您在两个条目中”);
}
其他的
{
Console.WriteLine(“您在三个条目中”);
}
}

sender
将是对触发事件的元素的引用当然,但我想知道哪个条目被更改了。一个或两个或三个我看不到(theTextBox)“Name”属性这只是一个将发件人转换为条目并进行比较的示例。我在编写此解决方案时没有进行测试…是的,这就是我想要学习的。谢谢