WPF的DateGrid数据源问题

py1025677845 2011-08-03 02:07:48
我用的是Nhibernate的到的是一个Ilist结果集,怎样去给DateGrid赋值,
也就是说怎么把数据库的数据读到DateGrid中去。
...全文
189 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
py1025677845 2011-08-03
  • 打赏
  • 举报
回复
恩。。
ustbwuyi 2011-08-03
  • 打赏
  • 举报
回复
那就是你使用hibernate有问题了。
py1025677845 2011-08-03
  • 打赏
  • 举报
回复
public IList<Stuinfo> getAll()
{
ISession session = factory.OpenSession();
IList<Stuinfo> list = session.CreateQuery("from Stuinfo").List<Stuinfo>();
return list;
}
py1025677845 2011-08-03
  • 打赏
  • 举报
回复
public static ISessionFactory getSessionFactory()
{
1 Configuration cf= new Configuration().Configure("hibernate.cfg.xml");
2 factory = cf.BuildSessionFactory();
3 return factory;
}
1那里出问题了 The invocation of the constructor on type 'Stu_WPF.MainWindow' that matches the specified binding constraints threw an exception.' Line number '3' and line position '9'.
ustbwuyi 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qqamoon 的回复:]
AutoGenerateColumns="True" 貌似不需要再定义 Columns 了吧

还有,报什么错呢? dao.getAll() 是什么?
[/Quote]

AutoGenerateColumns="True" 应该改成False。

不过你数据不显示不是这个问题,应该是你取数据有问题。
龍过鸡年 2011-08-03
  • 打赏
  • 举报
回复
AutoGenerateColumns="True" 貌似不需要再定义 Columns 了吧

还有,报什么错呢? dao.getAll() 是什么?
ustbwuyi 2011-08-03
  • 打赏
  • 举报
回复
你把list的count弹出来看下有几条数据。你确定有数据?
py1025677845 2011-08-03
  • 打赏
  • 举报
回复
<Window x:Class="Stu_WPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="465" Width="653" Loaded="Window_Loaded">
<Grid Height="427" Width="634">
<Button Content="查找" Height="23" HorizontalAlignment="Left" Margin="381,6,0,0" Name="button1" VerticalAlignment="Top" Width="75" />
<Label Content="姓名:" Height="28" HorizontalAlignment="Left" Margin="12,7,0,0" Name="label1" VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="53,7,0,0" Name="textBox1" VerticalAlignment="Top" Width="120" />
<Label Content="开学时间:" Height="28" HorizontalAlignment="Left" Margin="179,5,0,0" Name="label2" VerticalAlignment="Top" />
<TextBox Height="23" HorizontalAlignment="Left" Margin="239,7,0,0" Name="textBox2" VerticalAlignment="Top" Width="120" />
<DataGrid AutoGenerateColumns="True" Height="107" HorizontalAlignment="Left" Margin="12,36,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="509">
<DataGrid.Columns>
<DataGridTextColumn Header="Id" Binding="{Binding Path= Id}"/>
<DataGridTextColumn Header="姓名" Binding="{Binding Path=Name}" />
<DataGridTextColumn Header="年龄" Binding="{Binding Path=Sex}"/>
<DataGridTextColumn Header="所在专业" Binding="{Binding Path=Tie}" />
<DataGridTextColumn Header="所在系" Binding="{Binding Path=Profession}"/>
<DataGridTextColumn Header="开学时间" Binding="{Binding Path=Starttime}"/>
<DataGridTextColumn Header="地址" Binding="{Binding Path=Address}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
窗体加载事件
private void Window_Loaded(object sender, RoutedEventArgs e)
{
IList<Stuinfo> list = dao.getAll();
this.dataGrid1.ItemsSource = list;

}
可是怎么不能啊
ustbwuyi 2011-08-03
  • 打赏
  • 举报
回复

public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}

List<Person> list = new List<Person>();
list.Add(new Person() { Name = "张三", Age = 22 });
list.Add(new Person() { Name = "李四", Age = 22 });
datagrid1.ItemsSource = list;

<DataGrid Name="datagrid1">
<DataGrid.Columns>
<DataGridTemplateColumn Header="{Binding Name}" />
</DataGrid.Columns>
</DataGrid>
ustbwuyi 2011-08-03
  • 打赏
  • 举报
回复
直接将这个List集合指定给该DataGrid的ItemsSource即可。

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧