【发布时间】:2015-07-26 03:27:11
【问题描述】:
我是 wpf 的新手。我的 winform 应用程序中有此代码,我想在 wpf ListView 中有此代码。但我不知道如何开始..有人可以帮助将其转换为 wpf ListView 这是我的代码窗体
下面的代码显示了数据库中列出的项目的值..
for (int i = 0; i <= ListView1.Items.Count - 1; i++)
{
con = new SqlConnection(cs);
string cd = "insert Into ProductSold(InvoiceNo,ProductID,Quantity,Price,TotalAmount)
VALUES (@InvoiceNo,@ProductID,@Quantity,@Price,@Totalamount)";
cmd = new SqlCommand(cd);
cmd.Connection = con;
cmd.Parameters.AddWithValue("InvoiceNo", txtInvoiceNo.Text);
cmd.Parameters.AddWithValue("ProductID", ListView1.Items[i].SubItems[1].Text);
cmd.Parameters.AddWithValue("Quantity", ListView1.Items[i].SubItems[4].Text);
cmd.Parameters.AddWithValue("Price", ListView1.Items[i].SubItems[3].Text);
cmd.Parameters.AddWithValue("TotalAmount", ListView1.Items[i].SubItems[5].Text);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
}
for (int i = 0; i <= ListView1.Items.Count - 1; i++)
{
con = new SqlConnection(cs);
con.Open();
string cb1 = "update Product set QtyAvailable = QtyAvailable- " + ListView1.Items[i].SubItems[4].Text + " where ProductID= '" + ListView1.Items[i].SubItems[1].Text + "'";
cmd = new SqlCommand(cb1);
cmd.Connection = con;
cmd.ExecuteNonQuery();
con.Close();
}
【问题讨论】:
-
将 Winforms 代码逐行转换为 WPF 根本不切实际。在 WPF 中,您的
ListView对象将显示来自某个模型对象的数据,并且您将迭代模型对象,而不是ListView本身(实际上,即使在 Winforms 中,使用ListView作为数据的实际容器......但在 Winforms 中比在 WPF 中更常见)。在任何情况下,Stack Overflow 都不是一个“为我编写代码”的网站。你需要自己做出一些努力。如果您在努力后遇到了特定问题,请发布有关 that 的问题。 -
谢谢彼得爵士,您有什么参考资料可以让我轻松学习 wpf + MVVM。有很多教程,但有些更复杂。我想要一个更容易的。
-
不幸的是,WPF 本身就很复杂。基本概念并不难学,但要充分利用 WPF 则需要您付出努力。我发现一个有用的网站是wpf.2000things.com。我并不是说它是最好的,但它看起来确实相当全面,并且信息以“一口大小”的块形式呈现。最近我自己经历了 WPF 学习曲线,我很同情你的担忧,但我从来没有找到“灵丹妙药”。我只是挣扎着,就像任何人都必须做的那样。
-
非常感谢,彼得。这对于像我这样的 wpf 初学者来说是一个很大的帮助。
-
祝你好运。对于它的价值,现在我知道我在做什么,我发现 WPF 非常适合我的目的。我仍然偶尔会遇到一些烦恼,但总的来说,我更喜欢 WPF 而不是 Winforms。更难学习的原因之一是它具有更多功能,并且它们并不总是以直观的方式工作或相互交互。但这些功能本身通常很有用,并导致用户代码更少/更简单。