如何在Windows Phone中从列表中获取字符串到TextBlock?

时间:2015-04-15 09:06:12

标签: c# windows-phone-8

我正在开发一个简单的测验应用程序,有多项选择问题....但我对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");

        }
    }
}

看,我已经列出了这个列表,现在我如何获取这些问题才出现在我制作的文本块中?

2 个答案:

答案 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;
        }