2014-02-13 29 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,我應該如何顯示我已插入的2個問題。 只是一個簡單的數據綁定。

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

不幸的是,如果我做了兩次以上,顯示2個問題我插入它只會重複什麼是在第一個顯示。簡單地說,如果我有一個內部有2個值的數組,並且我想要顯示這兩個值,並且只使用echo或任何打印代碼而沒有循環,則只會輸出第一個值或第二個值,如果它覆蓋第一。

進出口新的C#WPF。我該怎樣做才能展示這兩個問題。在單獨的文本塊中。

1)1 + 1?

2)1 + 2?

其他問題,有關的選擇,生病使用單選按鈕。其中3個。我是否應該在choice1 choice2 choice3的問題類中添加3個屬性,然後使用數據綁定將這些值放入我的單選按鈕中?或者我應該只是簡單,手動將這些值在這些無線電buttons.he

其他的問題,我會放一個按鈕提交答案,生病是讓其他WPF窗口,並將其命名結果。我怎樣才能通過問題的總數和正確回答的問題,以便我可以在結果頁面上顯示考試的分數。

香港專業教育學院採取電子教室考試自己,結果頁面每次考試後,不僅顯示了總成績也顯示了問題,並通過用戶與正確答案回答的選擇。我如何通過這些,我插在我的問題類,如果我能通過這些2個問題我插入的問題,我應該那麼3個屬性只是添加到我的類的選擇,如選擇1選擇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"}); 

然後在我的課,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>