2016-06-12 11 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:@RoyiMindelへ

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

それはそれです!ありがとうございました! – panthor314

答えて

3

かなりシンプルなソリューションのおかげでそれを指摘するために、代わりに

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

のいずれかにする必要があります。

DisplayAlert("Item Selected", (((ListView)sender).SelectedItem as Student).complete_name, "OK"); 
関連する問題