C# ListView SelectedItem不适用于android xamarin表单
我对xamarin表单中的选定项有问题。 所选项目适用于所有项目,android除外 这就是我单击列表中不起作用的项目的时候 我已经调试并注意到函数没有被调用,但只有在android中才会发生这种情况,它有bug吗?还是我的错 谢谢收听 对我的英语很抱歉 选择编辑项方法C# ListView SelectedItem不适用于android xamarin表单,c#,xaml,listview,xamarin,xamarin.forms,C#,Xaml,Listview,Xamarin,Xamarin.forms,我对xamarin表单中的选定项有问题。 所选项目适用于所有项目,android除外 这就是我单击列表中不起作用的项目的时候 我已经调试并注意到函数没有被调用,但只有在android中才会发生这种情况,它有bug吗?还是我的错 谢谢收听 对我的英语很抱歉 选择编辑项方法 linha = (Linhas)e.SelectedItem; foreach (Linhas item in objBList) { item.selected = (
linha = (Linhas)e.SelectedItem;
foreach (Linhas item in objBList)
{
item.selected = (item == linha);
}
Device.BeginInvokeOnMainThread(() => {
lstView.ItemsSource = null;
lstView.ItemsSource = objBList;
});
ListView lista_linhas = (ListView)sender;
var linha_vat_converted = linha.Vat / 100;
p_name_e.Text = linha.Name_product;
p_code_e.Text = linha.Ref;
p_price_e.Text = linha.Pu.ToString("0.00#");
p_famaly_e.Text = linha.famaly_ref;
p_qtt_e.Text = linha.qtt.ToString("0.000#");
p_iva_e.Text = linha_vat_converted.ToString("P");
p_Unidade_e.Text = linha.Un;
这个方法是让我去获取点击项目的数据,并将其传递给另一方
ListView的Xaml
<ListView x:Name="lstView" RowHeight="50" ItemSelected="Handle_ItemSelected_1" SeparatorVisibility="None" IsVisible="False" BackgroundColor="White" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid Padding="5,10,5,5" >
<Grid.GestureRecognizers>
<TapGestureRecognizer
Tapped="testedalista"
NumberOfTapsRequired="2" />
</Grid.GestureRecognizers>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="10" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="5" />
<ColumnDefinition Width="3*" />
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="30" />
<ColumnDefinition Width="10" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<BoxView Grid.Column="0" Grid.RowSpan="2" IsVisible="{Binding selected}" BackgroundColor="#2379fb" Grid.Row="0"/>
<Label Grid.RowSpan="2" FontFamily="{StaticResource Open_Sans_Regular}" Margin="1,0,0,0" Grid.Column="1" Grid.Row="0" VerticalTextAlignment="Start" TextColor="#808080" Font="14" x:Name="linha_desc" Text ="{Binding Name_product}" Style ="{StaticResource SmallName}" />
<Label FontFamily="{StaticResource Open_Sans_Regular}" Margin="0,0,0,0" HorizontalTextAlignment="End" VerticalTextAlignment="Start" Grid.Row="0" TextColor="#808080" Font="14" Grid.Column="2" Text = "{Binding qtt , StringFormat= '{0:0.000#}'}" Style ="{StaticResource SmallName}" />
<Label FontFamily="{StaticResource Open_Sans_Regular}" Margin="0,0,0,0" HorizontalTextAlignment="Start" VerticalTextAlignment="Start" Grid.Row="0" TextColor="#808080" Font="14" Grid.Column="3" Text = "{Binding Un}" Style ="{StaticResource SmallName}" />
<Label FontFamily="{StaticResource Open_Sans_Regular}" Margin="0,0,5,0" HorizontalTextAlignment="End" VerticalTextAlignment="Start" TextColor="#808080" Grid.Row="0" Font="14" Grid.Column="4" x:Name="totais_linhas" Grid.ColumnSpan="2" Text = "{Binding price, StringFormat= '{0:C2}' }" />
<Label x:Name="desconto_linha" FontFamily="{StaticResource Open_Sans_Regular}" Margin="0,0,0,0" HorizontalTextAlignment="End" VerticalTextAlignment="Start" Grid.Row="1" TextColor="#808080" Font="10" Grid.Column="2" IsVisible="{Binding Selected}" Text = "{Binding Desconto, StringFormat='{0:P}' }" Style ="{StaticResource SmallName}" />
<Label FontFamily="{StaticResource Open_Sans_Regular}" Margin="0,0,5,0" HorizontalTextAlignment="End" Grid.ColumnSpan="2" VerticalTextAlignment="End" TextColor="#808080" Grid.Row="1" Font="10" Grid.Column="4" x:Name="totais" Text = "{Binding Pu, StringFormat= '{0:C2}' }" />
</Grid>
<ViewCell.ContextActions>
<MenuItem Clicked="OnMore" CommandParameter="{Binding .}"
Text="Adicionar" />
<MenuItem Clicked="OnDelete" CommandParameter="{Binding .}"
Text="Apagar" IsDestructive="True" />
<MenuItem Clicked="OnQtd" CommandParameter="{Binding .}"
Text="Apagar" IsDestructive="True" />
</ViewCell.ContextActions>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我认为Tappside和所选项目的关系不太好,我现在就去!但是我可以通过两次触碰触发selecteditem方法??您有一个TapGestureRecognitor和一个selecteditem方法。你打算打哪一个电话?或者哪一个不起作用?只有安卓系统?在iOS中,一切都运行良好?TapGestureRecognitor只需使用2次触摸,是的,在iOS上运行良好