WPF8/C#-将数据绑定到网格
我知道我发布了这个问题,但在接受了我最后一个问题的答案并看完这篇文章后,我意识到这不是我想要的答案。我再次发布了一些示例代码 我想用集合中的数据填充网格(不是DataGrid)。这是我所拥有的,但它不起作用。如果删除集合并将DataContext设置为单个对象,则它可以工作,但不能作为集合 XAMLWPF8/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() {
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"},
};
}
}