C#考试WPF和结果

时间:2014-02-13 01:01:08

标签: c# wpf class

我的xaml上有这段代码。

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个问题,它将只复制第一个上显示的内容。简单地说,如果我有一个数组,其中包含2个值,我想显示这两个值,只是使用echo或任何打印代码而不循环它只会输出第一个值或第二个值,如果它的作用是覆盖第一个。

我是C#WPF的新手。我应该做什么以及如何展示这两个问题。在单独的文本块中。

  

1。)1 + 1?

     

2。)1 + 2?

附加问题,对于选择,使用单选按钮。其中3个。我应该在我的问题类中为choice1 choice2 choice3添加3个属性,然后使用数据绑定将这些值放入我的单选按钮中吗?或者我应该只是简单地将这些值手动放在那些单选按钮中。

另外一个问题,我会按一个按钮来提交答案,我会制作另一个wpf窗口并将其命名为结果。如何通过问题总数和正确回答的问题,以便我可以在结果页面上显示考试成绩。

我自己参加了电子课堂考试,每次考试结果页面不仅显示总分,还显示问题和用户选择的答案和正确答案。我如何通过我在问题类中插入的那些问题,如果我可以通过我插入的那两个问题,那么我只需要在我的课程中添加3个属性作为选择,例如choice1 choice2 choice3 then

    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; }直到选择3。由于它是一个字符串,我可能需要使用convert.toint16()

1 个答案:

答案 0 :(得分:0)

您应该使用Listview来显示您的所有问题(我应该超过两个)。 ListView的每一行都是一个带有TextBlock和3个Radio Buttons的数据模板。 您应该在问题类中插入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>