この場合、AutomationId
を悪用する必要はありません。 WPF
(またはSilverlight
、または任意の他)では、あなたはTag
プロパティを使用すると思いますが、Xamarin.Forms
は
object Tag { get; set; }
プロパティを提供していません。欠落の理由は非常に簡単です。付属のBindablePropertyを使用して、自分で機能を提供することができます。
public class TagHelper
{
public static readonly BindableProperty TagProperty =
BindableProperty.Create("Tag", typeof(object), typeof(TagHelper), default(object));
public static object GetTag(BindableObject bindable)
{
return (object)bindable.GetValue(TagProperty);
}
public static void SetTag(BindableObject bindable, object value)
{
bindable.SetValue(TagProperty, value);
}
}
、あなたはこのようなあなたのLabel
タグ付け:あなたはAbsoluteLayout
に "mytagという" とのラベルを検索する場合
<Label ... local:TagHelp.Tag="myTag" .../>
は今、それは難しいことではありません。
var label = layout.Children.FirstOrDefault(v => TagHelper.GetTag(v) == "myTag") as Label;
をAutomationId
を使用することを本当に主張している場合(そうしてはならない)、これはうまくいくはずです
//DON'T
var label = layout.Children.FirstOrDefault(v => v.AutomationId == "2000") as Label;
これは私のために働いた!!!!ありがとう:)\ –