如何使用项目按钮单击将ListView值传递到另一个页面?

时间:2018-04-20 07:50:25

标签: c# xaml xamarin xamarin.forms

ListView根据Id填充username

<Entry Text="{Binding username, Mode=TwoWay}"/>
<Button Command="{Binding SearchCommand}" />
<ListView ItemsSource="{Binding SearchId}" 
          HasUnevenRows="False" 
          x:Name="list" 
          ItemTapped="LstItems_OnItemTapped">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell >
                <StackLayout Orientation="Vertical" >
                    <Label x:Name="ident" 
                           Text="{Binding Id}"></Label>
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>        
</ListView>

private async void LstItems_OnItemTapped(object sender, ItemTappedEventArgs e)
{ 
    var item = (UserDetail)e.Item;
    var newpage = new Contact(item.Id);

    await Navigation.PushAsync(newpage);
}

public Command SearchCommand
{
    get
    {
        return new Command(async () =>
        {
            var employeesServices = new EmployeesServices();
            SearchId= await employeesServices.GetUserDetailAsync(_username);

        });
    }
}

private List<UserDetail> _SearchId;           
public List<UserDetail> SearchId
{
    get { return _SearchId;  }
    set
    {
        _SearchId = value;
        OnPropertChanged();
    }
}

我可以成功将ID传递到另一个页面,现在我有另一个问题,当我点击列表视图时,我只能将Id从列表视图传递到另一个页面。

是否可以点击按钮Id直接传递下一页而不点按ListView

1 个答案:

答案 0 :(得分:3)

您可以在列表视图中使用SelectedItem,如下所示:

<ListView ItemsSource="{Binding SearchId}" HasUnevenRows="False" x:Name="list" ItemTapped="LstItems_OnItemTapped" SelectedItem="{Binding SelectedListItem,Mode=TwoWay}">

使用此功能后,您将获得列表中当前选定的项目,您可以将其传递给任何页面! 希望这可以解决您的问题。

相关问题