我有一個Xamarin.Forms ListView和ItemTemplate。 ItemTemplate包含一個名爲「myEntry」的輸入控件。每次選擇一個項目時,我都要將焦點設置爲輸入控件。在我xaml.cs ListView_ItemSelected事件listView.FindByName( 「myEntry」)方法始終返回null:Xamarin.Forms FindByName()總是返回null
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>
我也試圖從我的XAML找到其他控制,但它是始終爲空。 我做錯了什麼或者這是一個錯誤?
@Mirja不管你有多少個listitems,你總是有一個入口控件? – greenhoorn
每個listitem一個入口控件 – Mirja
基本上,您將爲每個項目分配一個具有相同名稱的入口控件。 – greenhoorn