问题描述
如何查找条目已更改?
<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");
}