2014-02-13 1 views
0

이 코드는 내 xaml에 있습니다.C# 시험을 보는 WPF 및 결과

public partial class MainWindow : Window 
    { 
     List<question> questions = new List<question>(); 
     public MainWindow() 
     { 
      InitializeComponent(); 

      questions.Add(new question {number=1, content="1+1?", answer="2"}); 
      questions.Add(new question {number=2, content="1+2?", answer = "3"}); 
      this.DataContext = questions; 
     } 
    } 

    public class question 
    { 
     public int number { get; set; } 
     public string content { get; set; } 
     public string answer { get; set; } 
    } 

위의 질문에 대한 클래스를 만들고 그것에 행을 삽입했습니다.

이제 wpf에 내가 삽입 한 두 가지 질문을 어떻게 표시해야합니까? 간단한 데이터 바인딩. 내가이 문제를 보여주기 위해 두 번 이상 할 경우

Text="{Binding number}" Text="{Binding content}" 

불행하게도, 난 단지 첫 번째에 표시되는 내용 중복됩니다 삽입. 간단히 말하면, 그 안에 2 개의 값을 가진 배열이 있고 두 값을 모두 표시하고 루프를 사용하지 않고 에코 또는 모든 인쇄 코드를 사용하려면 첫 번째 값 또는 두 번째 값만 출력합니다. 첫 번째.

C# WPF의 새로운 기능입니다. 두 가지 질문을 표시하려면 무엇을 어떻게해야합니까? 별도의 텍스트 블록에

1) 1 + 1?

2.) 1 + 2?

추가 질문, 선택 사항으로 라디오 버튼을 사용하지 마십시오. 3 명. 선택지 choice2 choice3에 대한 내 질문 클래스에 3 개의 속성을 추가해야합니까? 그렇다면 데이터 바인딩을 사용하여 해당 값을 라디오 버튼에 넣으십시오. 아니면 그냥 그 라디오 버튼에 수동으로 그 값을 넣어해야합니다 .the

추가 질문, 내가 대답을 제출하는 버튼을 넣어, 또 다른 wpf 창을 만들고 결과 이름을 지정합니다. 질문의 총 개수와 정확하게 응답 한 질문을 전달하면 결과 페이지에 시험 점수를 표시 할 수 있습니다.

필자는 시험을 마친 후 결과 페이지에 총점을 표시 할뿐만 아니라 사용자가 답변 한 질문과 선택 사항과 정답을 보여줍니다. 내가 어떻게 같은 choice1 선택 2 choice3 다음

questions.Add(new question {number=1, content="1+1?", answer="2", choice1="3", choice2="1", choice3="2"}); 
    questions.Add(new question {number=2, content="1+2?", answer = "3", choice1="3", choice2="1", choice3="2"}); 

그런 다음에, 내가 그럼 그냥 선택 내 클래스에 3 개의 속성을 추가해야합니다 내가 삽입 사람들이 개 질문을 전달할 수 있다면 난 내 질문 클래스에 삽입 그 질문을 통과 할 내 수업 public string choice1 { get; set; }까지 choice3. 그 이후로 문자열을 사용해야 할 수도 있습니다. convert.toint16()

답변

0

Listview를 사용하여 두 가지 이상의 질문을 모두 표시해야합니다. ListView의 각 행은 TextBlock 및 3 개의 라디오 버튼이있는 데이터 템플릿입니다. 질문 클래스에 3 개의 선택 사항을 삽입하고 라디오 그룹에 바인딩해야합니다. 이 같은

뭔가 :

<ListView ItemsSource="{Binding Path=questions}"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Orientation="Horizontal"> 
       <TextBlock Text={Binding Path=content}"/> 
       <RadioButton GroupName="{Binding Path=Number}" Content="{Binding Path=Choice1"/> 
       <RadioButton GroupName="{Binding Path=Number}" Content="{Binding Path=Choice2"/> 
       <RadioButton GroupName="{Binding Path=Number}" Content="{Binding Path=Choice3"/> 
      </StackPanel> 
     </DataTemplate> 
    <ListView.ItemTemplate> 
</ListView>