【发布时间】:2015-09-08 11:54:12
【问题描述】:
如何使用 MVVM 在 WPF 应用程序中将测验与不同类型的问题绑定?
QuizPageViewModel:
public class QuizPageViewModel : ViewModelBase
{
public QuizPageViewModel()
{
QuizCollection = new ObservableCollection<QuizQuestion>();
}
public ObservableCollection<QuizQuestion> QuizCollection { get; set; }}
QuizQuestion:- EF 实体
public partial class QuizQuestion
{
public QuizQuestion()
{
QuizAnswers = new HashSet<QuizAnswer>();
QuizMultiQuestions = new HashSet<QuizMultiQuestion>();
}
public long Id { get; set; }
public int QuizId { get; set; }
***public String Type { get; set; }***
[Required]
public string Name { get; set; }
}
问题类型可以是truefalse、multianswer、multichoice等类型
在 xaml 中:
<ItemsControl ItemsSource="{Binding QuizCollection}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding Path=QuizAnswers}"
VerticalAlignment="Stretch"
Background="Transparent">
<ListBox.ItemTemplate>
<ItemContainerTemplate>
<RadioButton GroupName="{Binding Id}"
Content="{Binding Name}" />
</ItemContainerTemplate>
</ListBox.ItemTemplate>
</ListBox>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
此 xaml 代码仅显示测验的单选按钮问题。如何绑定和显示其他类型的问题(复选框、组合框、文本框)?帮助)))
【问题讨论】:
-
你应该看看数据模板选择器:msdn.microsoft.com/en-us/library/…