我需要从列表框项中检索组件。不是来自点击或选择更改的事件。有没有一种简单的方法可以实现这一目标?如果我没记错的话,在Android中你可以写:
layoutRoot.findViewById(R.id.name);
在 Windows Phone 上是否有类似的方法可以做到这一点?
更新:这是我到目前为止尝试过的,但不起作用:
当我拥有 ListBoxItem 时,Daniela 在选项 5 中所说的似乎有效。因此,当我在 ListBoxItem 上有一个 Tap 事件时,这可以正常工作:
private void ListBoxItem_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
ListBoxItem item = sender as ListBoxItem;
// I can now retrieve a component inside the ListBoxItem
TextBox textBox = item.FindName("myTextBox") as TextBox;
}
但是我想在不从 ListBoxItem 触发任何事件时执行此操作。JoonasL 所说的看起来像是我可以使用的东西,但我无法让它发挥作用。
// will not compile ( Cannot implicitly convert type 'object' to... )
ListBoxItem item = x.Items[0];
// if cast the value will be null
ListBoxItem item = x.Items[0] as ListBoxItem;
// will return the object used to populate that ListBoxItem, not the actual ListBoxItem.
// item will have a ItemViewModel object.
List<ItemViewModel> list = ....
this.myListBox.ItemsSource = list;
var item = x.Items[0]
在 Google 上搜索时,我发现了一些可以用来在 ListBoxItem 中查找组件的东西,但我认为应该有更简单的方法。他们在这里使用VisualTreeHelper。