【发布时间】:2012-01-26 13:24:58
【问题描述】:
我是 WPF 的新手,我想将 SQL 查询中的数据可视化到 WPF DataGrid。 我对如何正确绑定数据有疑问:
SqlCommand cmd = new SqlCommand(sql_dotaz, conn);
InfoText.Text += ("Příkaz vytvořen a připojen" + "\n");
try
{
conn.Open();
InfoText.Text += ("Připojení otevřeno" + "\n");
SqlDataReader reader = cmd.ExecuteReader();
int row_count = reader.FieldCount;
ArrayList propoj = new ArrayList();
for (int i = 0; i < row_count; i++)
{
propoj.Add(reader.GetName(i));
tabView.Columns.Add(new DataGridTextColumn
{
Header = reader.GetName(i),
Binding = new Binding(reader.GetName(i))
});
//Here is the problem!!!
tabView.Items.Add(new {propoj[i] = "Hello"});
}
问题是当尝试添加新项目时,它会引发错误。我不能像这样显式设置标题名称(Invitation = "Hello")。
I also tried
tabView.Columns.Add(new DataGridTextColumn
{
Header = reader.GetName(i),
Binding = new Binding(reader.GetName(i))
});
string record = reader.GetName(i));
tabView.Items.Add(new {record = "Hello"});
但是标题名称还是有问题——DataGrid是空的。
如果您有任何想法,请告诉我。 非常感谢!
【问题讨论】:
-
嗨,Vilem,欢迎来到 S.O 和广阔的 WPF 世界。正如几个用户所指出的,虽然可以将数据直接添加到 DataGrid WPF 控件,但它很笨拙、容易出错,并且不是确保向用户显示数据的推荐方法。我支持您在
MVVM design pattern上查找示例的建议,并熟悉Data Binding和View到ViewModel