リストボックス項目からコンポーネントを取得する必要があります。タップまたは選択変更イベントからではありません。これを達成する簡単な方法はありますか?私の記憶が正しければ、Android では次のように書くことができます。
layoutRoot.findViewById(R.id.name);
Windows Phone でこれを行う同様の方法はありますか?
更新:これまでに試したことは次のとおりですが、機能しません:
オプション 5 でダニエラが言ったことは、ListBoxItem がある場合に機能するようです。したがって、たとえば 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を使用しています。