2017-04-20 12 views
0

皆さん、私はxamarin.formsの新機能で、xamarin.formsの中にネストされたListViewとしてクイズを表示しようとしています。質問と関連するオプションが表示されますが、誰もが私はこれをどのように行うことができます任意のアイデアを持っているので、もしme..thatがここXamarin.Formsでネストされたコレクションを表示する方法ListView

大きな助けになります助けてください、リストビューで正しくこのリストを表示することは私のコードは

public QuizViewModel(int testId) 
    { 
     var quizModel = Load(testId); 
     QuizList = new ObservableCollection<QuizModel>(quizModel); 
    } 



    public List<QuizModel> Load(int testId) 
    { 
      List<Suggestions> suggestionlist; 
      List<QuizModel> quizList = new List<QuizModel>(); 
      var responseString = CommonFunctions.GetQuestionItems(testId); 
      var responseData = JArray.Parse(responseString.ToString()); 
      var Questions = new List<QuizModel>(); 
      int i = 0; 
      foreach (var quiz in responseData) 
      { 
       i++; 
       suggestionlist = new List<Suggestions>(); 

       var ques = new QuizModel 
       { 

        QuestionNumber = i, 
        Id = !string.IsNullOrEmpty(quiz["Id"].ToString()) ? (int)quiz["Id"] : 0, 
        TestId = testId, 
        Question = !string.IsNullOrEmpty(quiz["Title"].ToString()) ? quiz["Title"].ToString() : string.Empty, 
        Answer = !string.IsNullOrEmpty(quiz["Answer"].ToString()) ? quiz["Answer"].ToString() : string.Empty, 
        UserSelectedAnswer = string.Empty, 
       }; 
       suggestionlist.Add(new Model.Suggestions { Option = !string.IsNullOrEmpty(quiz["OptionA"].ToString()) ? quiz["OptionA"].ToString() : string.Empty }); 
       suggestionlist.Add(new Model.Suggestions { Option = !string.IsNullOrEmpty(quiz["OptionB"].ToString()) ? quiz["OptionB"].ToString() : string.Empty }); 
       suggestionlist.Add(new Model.Suggestions { Option = !string.IsNullOrEmpty(quiz["OptionC"].ToString()) ? quiz["OptionC"].ToString() : string.Empty }); 
       suggestionlist.Add(new Model.Suggestions { Option = !string.IsNullOrEmpty(quiz["OptionD"].ToString()) ? quiz["OptionD"].ToString() : string.Empty }); 
       ques.Suggestions = suggestionlist; 

       Questions.Add(ques); 

      } 

      return Questions; 
     } 

クイズモデルです:

public class QuizModel 
    { 
     public int Id { get; set; } 
     public int TestId { get; set; } 
     public int QuestionNumber { get; set; } 
     public string Question { get; set; } 
     public List<Suggestions> Suggestions { get; set; } 
     public string Answer { get; set; } 
     public string UserSelectedAnswer { get; set; } 
} 

は、ここに私のXAMLコードです:

<ScrollView > 
    <ListView ItemsSource="{Binding QuizList}"> 
    <ListView.ItemTemplate> 
    <DataTemplate> 
     <StackLayout VerticalOptions="CenterAndExpand" Orientation="Horizontal"> 
        <Label HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand" Text="{Binding Question}" TextColor="White"/> 
     </StackLayout> 
     <ListView ItemsSource="{Binding Suggestions}"> 
      <ListView.ItemTemplate> 
      <DataTemplate> 
       <ViewCell> 
        <ViewCell.View> 
        <StackLayout Padding="10"> 
         <Frame> 
         <StackLayout HorizontalOptions="FillAndExpand"> 
          <Label Text="{Binding Option}"/> 
          </StackLayout> 
         </Frame> 
         </StackLayout> 
        </ViewCell.View> 
        </ViewCell> 
       </DataTemplate> 
       </ListView.ItemTemplate> 
       </ListView> 
      <DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 
</ScrollView> 

答えて

0
<ListView ItemsSource="{Binding QuizList}" 
     HasUnevenRows="True" 
     IsGroupingEnabled="True" 
     GroupDisplayBinding="{Binding Key}" > 
<ListView.GroupHeaderTemplate> 
<DataTemplate> 
    <ViewCell> 
    <Label HorizontalOptions="CenterAndExpand" 
      VerticalOptions="CenterAndExpand" 
      Text="{Binding Key}" 
      TextColor="Red"/>   
    </ViewCell> 
    </DataTemplate>   
</ListView.GroupHeaderTemplate> 
<ListView.ItemTemplate> 
    <DataTemplate> 
     <ViewCell> 
      <Frame Padding="10"> 
       <StackLayout> 
        <Label Text="{Binding Option}"/> 
       </StackLayout> 
      </Frame> 
     </ViewCell> 
    </DataTemplate> 
</ListView.ItemTemplate> 

+0

キー値形式でご質問の回答リストは、辞書を使用して、その後、ちょうどXAMLページでそのリスト(質問のための変数の名前としてキーをバインドしてください。あなたの選択肢としての価値)。 –

関連する問題