仅获取observableCollection中所选项目的一项,并在xaml C#中显示

时间:2018-09-14 14:38:59

标签: c# xaml xamarin

我正在做一个显示服务列表视图的应用程序,如果我选择一个,它将触发此方法。

  public void ListView_ItemTapped(object sender, ItemTappedEventArgs e)
    {
        var vm = BindingContext as ServicosMenu;
        var ser = e.Item as Rota;

        vm.HideOrShowService(ser);
    }

所以事情是,这将显示一个按钮调用Details(详细信息),该按钮会将我重定向到我选择的服务的详细信息视图。问题是我不知道如何将选中的项目绑定到下一个视图。

示例:想象一下,今天您有2个服务,选择其中一项,它会显示按钮详细信息,您触摸该按钮后便会重定向到此页面:

   <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:ser="clr-namespace:AppQ4evo.Services"
             x:Class="AppQ4evo.Views.Detalhes">
    <ContentPage.BindingContext>
        <ser:ServicosMenu/>
    </ContentPage.BindingContext>

    <StackLayout Spacing="10" Margin="10,10" >
    <Label Text="Detalhes do Cliente selecionado" FontSize="Large" TextColor="Black" Font="bold"/>

    <ListView  x:Name="details"             
               ItemsSource="{Binding OneSer }" 
               HasUnevenRows="True"   
              Margin="10,30">
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell>.....

使用上面显示的xaml代码,我从我的observableCollection ListSer中获得了2个服务的详细信息,仅安装了我触摸以查看详细信息的一项。

是否有任何想法可以显示我选择的列表视图中一项的详细信息?

感谢您的帮助!

EDIT1:

The details button:

    private async Task Button_Clicked_DetalhesAsync(object sender, ItemTappedEventArgs e)
    {

        await Navigation.PushAsync(new Detalhes());
    }

详细信息

EDIT2

这是详细信息的类和视图:

班级:

    [XamlCompilation(XamlCompilationOptions.Compile)]
public partial class Detalhes : ContentPage
{
    public ObservableCollection<Rota> Rote { get; set; }
    public Detalhes (Rota det)
    {
        Rote = new ObservableCollection<Rota>();
        Rote.Add(det);
      //  details.ItemsSource = Rote; this was a try did not work too
        InitializeComponent();

    }

查看:

<ListView  x:Name="details" 
           SelectedItem="{Binding Path=Rote}"
           HasUnevenRows="True"   
           Margin="10,30">
    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>...

您可以看到这有什么问题吗?

0 个答案:

没有答案