首页 文章

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

提问于
浏览
1

我有 ListView 根据 username 填充 Id

<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传递给另一个页面,现在我有另一个问题,当我点击列表视图时,我只能将listview中的 Id 传递给另一个页面 .

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

1 回答

  • 3

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

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

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

相关问题