我正在开发一个简单的测验应用程序,有多项选择问题....但我对WPDev很新。无论如何,对于问题,我想将列表中的问题提取到TextBlock,当玩家回答时,下一个问题就会被加载。我不知道怎么回事。
这是当前的.cs文件;
namespace PhoneApp6
{
public partial class Page1 : PhoneApplicationPage
{
public Page1()
{
InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
List<String> questions1 = new List<String>();
questions1.Add("Q1");
questions1.Add("Q2");
questions1.Add("Q3");
questions1.Add("Q4");
questions1.Add("Q5");
}
}
}
看,我已经列出了这个列表,现在我如何获取这些问题才出现在我制作的文本块中?
答案 0 :(得分:0)
您需要研究MVVM。基本上你有一个ViewModel将提供列表。然后在您的xaml中,您可以将文本框绑定到列表中。内存中的快速示例:
的Xaml:
<Page.DataContext>
<vm:MyViewModel />
</Page.DataContext>
<ListView ItemsSource="{Binding Questions}">
<ListView.ItemsTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</ListView.ItemsTemplate>
</ListView>
视图模型:
public class MyViewModel {
public List<string> Questions = new List<string> { "Q1", "Q2", "Q3", "Q4" };
}
当然MVVM比这更深入,这只是触及表面,但应该让你去。
答案 1 :(得分:0)
You can use The Visual Tree to achieve this.
public List<Control> ChildrensList(DependencyObject parent)
{
List<Control> list = new List<Control>();
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
{
var child = VisualTreeHelper.GetChild(parent,i);
if (child is Control)
list.Add(child as Control);
list.AddRange(ChildrensList(child));
}
return list;
}