2016-06-12 3 views
2

У меня есть приложение Xamarin Forms, в котором я заполняю список объектов со списком объектов типа Student. Я хочу, чтобы иметь возможность выбрать этого ученика и открыть предупреждение, которое отображает имя выбранного студента. Моя текущая попытка показывает только тип объекта (Student) в предупреждении. Вот мой подход:Как получить информацию о свойствах объектов из привязки данных

AttendancePage.xaml:

<ListView x:Name="RosterInView" SeparatorVisibility="None" ItemSelected="OnSelection"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <TextCell Text="{Binding complete_name}" 
      Detail="{Binding grade}"/> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

И в моем AttendancePage.xaml.cs я с трудом получаю связывающее свойство вниз:

protected override void OnAppearing() 
    { 
     base.OnAppearing(); 
     IEnumerable<Student> roster = _database.GetItems(); 

     RosterInView.ItemsSource = roster; 

    } 
void OnSelection(object sender, SelectedItemChangedEventArgs e) 
    { 
     if (e.SelectedItem == null) 
      return; 
     // real trouble starts here with how to refer to "complete_name" as seen in the xaml file 
     DisplayAlert("Item Selected", ((ListView)sender).SelectedItem.ToString(), "OK"); 
    } 
+2

((ListView) отправитель) .SelectedItem as Student) не подходит для вас? –

+1

Thats it! Спасибо! – panthor314

ответ

3

Довольно простое решение благодаря @RoyiMindel для указания его , вместо

DisplayAlert("Item Selected", ((ListView)sender).SelectedItem.ToString(), "OK"); 

должно быть:

DisplayAlert("Item Selected", (((ListView)sender).SelectedItem as Student).complete_name, "OK"); 
Смежные вопросы