如何获取Xamarin.Forms中动态添加元素的引用
获取Xamarin.Forms中新增按钮的引用方法
有几种实用的方法可以获取这个按钮的引用,方便后续修改:
1. 提前创建变量保存引用(最推荐)
在添加按钮到布局前,先将按钮实例赋值给一个变量,后续直接通过这个变量操作即可,这是最直接且高效的方式:
f001content = new Xamarin.Forms.AbsoluteLayout(); // 先创建按钮实例并保存到变量 Button myButton = new Button { Text = "Button", AutomationId = "MyButton", }; // 将变量对应的按钮添加到布局 f001content.Children.Add(myButton, new Rectangle(0,0,100,40)); // 后续修改按钮属性,直接用myButton变量即可 myButton.Text = "修改后的按钮文本"; myButton.BackgroundColor = Color.Red;
2. 通过AutomationId查找引用
如果你已经按原代码添加了按钮,可以利用你设置的AutomationId属性,在布局的子元素集合中查找对应的按钮:
// 从AbsoluteLayout的子元素中筛选出符合条件的Button Button myButton = f001content.Children .OfType<Button>() .FirstOrDefault(b => b.AutomationId == "MyButton"); if (myButton != null) { // 找到按钮后进行修改操作 myButton.Text = "通过AutomationId找到的按钮"; }
3. 通过子元素索引/位置获取引用
如果这个按钮是最后添加到布局的,可以直接取子元素集合的最后一项(注意类型转换):
Button myButton = f001content.Children.LastOrDefault() as Button; if (myButton != null) { // 执行修改操作 myButton.IsEnabled = false; }
这种方法的局限性是:如果后续再往布局中添加其他控件,最后一项就不再是这个按钮了,所以仅适合添加按钮后立即获取的场景。
内容的提问来源于stack exchange,提问作者DumbestGuyOnSaturn
相关产品推荐
相关产品推荐

