я делаю приложение, которое показывает список служб, и если я выберу один, это вызовет этот метод.
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 код, который я показываю выше, я получаю подробную информацию о 2 сервисах, которые поступают из моего observableCollection ListSer, вместо того, к которому я прикоснулся, чтобы увидеть детали.
Любая идея, как я мог бы сделать это, чтобы показать только детали одного элемента списка, который я выбрал?
Спасибо за любую помощь !!
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>...
Вы видите, что не так в этом ??