Ich habe eine Xamarin.Forms ListView mit ItemTemplate. Das ItemTemplate enthält ein Eintragssteuerelement mit dem Namen "myEntry". Jedes Mal, wenn ein Element ausgewählt wird, möchte ich den Fokus auf das Eingabesteuerelement legen. In meinem xaml.cs ListView_ItemSelected Ereignis der listView.FindByName ("MyEntry") Methode gibt immer null:Xamarin.Forms FindByName() gibt immer null zurück
private void ListView_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
var lv = sender as ListView;
if (lv != null)
{
var entry = lv.FindByName<Entry>("myEntry");
if (entry != null)
entry.Focus();
}
}
XAML:
<ListView ItemsSource="{Binding ArtikelListe}"
Header=""
HasUnevenRows="True"
ItemSelected="ListView_ItemSelected"
ItemTapped="ListView_ItemTapped">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid Margin="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="250*"/>
<ColumnDefinition Width="150*"/>
<ColumnDefinition Width="100*"/>
<ColumnDefinition Width="100*"/>
<ColumnDefinition Width="100*"/>
<ColumnDefinition Width="75*"/>
<ColumnDefinition Width="75*"/>
<ColumnDefinition Width="250*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Label Text="{Binding Bezeichnung}"/>
<Label Grid.Column="1" Text="{Binding ArtikelNr}"/>
<Label Grid.Column="2" Text="{Binding KatalogNr}"/>
<Label Grid.Column="3" Text="{Binding Lagerplatz}"/>
<Label Grid.Column="4" Text="{Binding Mengeneinheit}"/>
<Label Grid.Column="5" Text="{Binding Sollbestand}"/>
<Entry x:Name="myEntry" Grid.Column="6" VerticalOptions="StartAndExpand" Text="{Binding AktuellerBestand}"/>
<Label Grid.Column="7" Text="{Binding Kommentar}"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Ich habe auch versucht, andere Kontrollen von meiner XAML zu finden, aber es ist immer Null. Mache ich etwas falsch oder ist das ein Fehler?
@Mirja Sie haben immer eine Eingabesteuerung, unabhängig davon, wie viele Listen Sie haben? – greenhoorn
Ein Eintragssteuerelement pro Listenelement – Mirja
Grundsätzlich weisen Sie jedem Element ein Eintragssteuerelement mit demselben Namen zu. – greenhoorn