W ramach wydarzenia chciałbym skupić się na konkretnym TextBox w szablonie ListViewItem. XAML wygląda następująco:Jak mogę uzyskać dostęp do ListViewItems z ListView WPF?
<ListView x:Name="myList" ItemsSource="{Binding SomeList}">
<ListView.View>
<GridView>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<!-- Focus this! -->
<TextBox x:Name="myBox"/>
Próbowałem następujących w kodzie za:
(myList.FindName("myBox") as TextBox).Focus();
ale wydaje mi się, że źle się FindName()
dokumenty, ponieważ zwraca null
.
Również ListView.Items
nie pomaga, ponieważ to (oczywiście) zawiera moje powiązane obiekty biznesowe i nie ma ListViewItems.
Ani myList.ItemContainerGenerator.ContainerFromItem(item)
, która również zwraca wartość null.
To zdecydowanie odpowiedź. Aby dodać trochę informacji, zauważyłem, że zdarzenie jest wywoływane dwa razy. Za pierwszym razem ContainerFromItem generuje wartość pustą, natomiast za drugim razem zwraca oczekiwany obiekt listviewitem. Ten uratował mój dzień! – g1ga
To wydarzenie nie jest dostępne w WinRT –