Xamarin 表单条目

问题描述

如何查找条目已更改?

<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)
}

有什么办法可以查到吗?

解决方法

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

您不能访问 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");
        }
        
    }
,

检查发件人!

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");
}