WPF8/C#-将数据绑定到网格

WPF8/C#-将数据绑定到网格,c#,windows-phone-8,C#,Windows Phone 8,我知道我发布了这个问题,但在接受了我最后一个问题的答案并看完这篇文章后,我意识到这不是我想要的答案。我再次发布了一些示例代码 我想用集合中的数据填充网格(不是DataGrid)。这是我所拥有的,但它不起作用。如果删除集合并将DataContext设置为单个对象,则它可以工作,但不能作为集合 XAML Grid x:Name=“ContentPanel”Grid.Row=“1”Margin=“12,0,12,0”> MainPage.xaml.cs public MainPage() {

我知道我发布了这个问题,但在接受了我最后一个问题的答案并看完这篇文章后,我意识到这不是我想要的答案。我再次发布了一些示例代码

我想用集合中的数据填充网格(不是DataGrid)。这是我所拥有的,但它不起作用。如果删除集合并将DataContext设置为单个对象,则它可以工作,但不能作为集合

XAML

Grid x:Name=“ContentPanel”Grid.Row=“1”Margin=“12,0,12,0”>
MainPage.xaml.cs

public MainPage()
    {
        InitializeComponent();

        ObservableCollection<Student> ob = new ObservableCollection<Student>();

        ob.Add(new Student()
        {
            StudentName = "James Jeffery"
        });

        ob.Add(new Student()
        {
            StudentName = "Sian Ellis"
        });



        this.DataContext = ob;

        // Sample code to localize the ApplicationBar
        //BuildLocalizedApplicationBar();
    }
public主页()
{
初始化组件();
ObservableCollection ob=新的ObservableCollection();
新增(新学生)
{
StudentName=“詹姆斯·杰弗里”
});
新增(新学生)
{
StudentName=“Sian Ellis”
});
this.DataContext=ob;
//本地化ApplicationBar的示例代码
//BuildLocalizedApplicationBar();
}
这已经困扰了我好几个小时了。我似乎无法用一个集合填充一个网格。谷歌上的每个例子都显示ListView等。我想填充一个网格,并且只填充一个网格


关于如何实现这一点有什么建议吗?

你不能。网格无法执行此操作。您需要使用ItemsControl或ItemsControl的desendant


尝试本教程:

如另一个答案中所述,您需要一个
项控件

<Window x:Class="MiscSamples.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <ItemsControl ItemsSource="{Binding}">
        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <UniformGrid IsItemsHost="True" Rows="3" Columns="3"/>
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <StackPanel>
                    <TextBox Text="{Binding Name}" Margin="2"/>
                </StackPanel>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</Window>

代码隐藏:

 public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            DataContext = new List<Student>
                {
                    new Student() {Name = "James Jeffery"},
                    new Student() {Name = "Sian Ellis"},
                    new Student() {Name = "James Jeffery 2"},
                    new Student() {Name = "Sian Ellis 2"},
                    new Student() {Name = "James Jeffery 3"},
                    new Student() {Name = "Sian Ellis 3"},
                };
        }
    }
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
DataContext=新列表
{
新学生(){Name=“James Jeffery”},
新学生(){Name=“Sian Ellis”},
新学生(){Name=“James Jeffery 2”},
新学生(){Name=“Sian Ellis 2”},
新学生(){Name=“James Jeffery 3”},
新学生(){Name=“Sian Ellis 3”},
};
}
}
输出:


看起来您没有为网格的ItemsSource设置数据上下文。是否可以在网格时间视图中显示ItemsControl?比如说数独网格?@JamesJeffery是的,这是可能的。发布你需要的屏幕截图。
 public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            DataContext = new List<Student>
                {
                    new Student() {Name = "James Jeffery"},
                    new Student() {Name = "Sian Ellis"},
                    new Student() {Name = "James Jeffery 2"},
                    new Student() {Name = "Sian Ellis 2"},
                    new Student() {Name = "James Jeffery 3"},
                    new Student() {Name = "Sian Ellis 3"},
                };
        }
    }