- 要在表格里嵌入下拉框在DataGrid表格里就要用到的是
DataGridComboBoxColumn
<DataGridComboBoxColumn Header="商品编号" x:Name="commoditynum" DisplayMemberPath="{Binding commoditynum}" SelectedValuePath="{Binding commodityID}"TextBinding="{Binding commoditynum}" SelectedValueBinding="{Binding commodityID}" Width="180"/>
- 在页面加载事件里写商品编号下拉框的查询方法,commoditynum是商品编号的文本值,commodityID是唯一标识符id,就完成了简单的绑定。
//商品信息下拉框
DataTable commoditynum1=
myCaigoudinghuoClient..UserControl_Loaded_Selectcommoditynum().Tables[0];
commoditynum.ItemsSource = commoditynum1.DefaultView;
commoditynum.DisplayMemberPath = "commoditynum";
commoditynum.SelectedValuePath = "commodityID";
- 接下来就是获取表格行数据保存到数据库里,获取格式数据下拉框数据如下,这里ql是我自定义的表格,int commodityId = Convert.ToInt32(ql.Rows[i][“commodityID”]);对于新增保存后的修改回填下拉框,原理就是接收到你要回填的数据把它传递到表格里,注释:如果数据库存储语句里没写去空格的话最好是在回填数据的时候给下拉框的文本值加上去空格,空格多的话下拉框就会绑定不上。
private void fasds()
{
decimal pp = 0;
for (int i = 0; i < data.data2.Rows.Count; i++)
{
if (data.data2.Rows[i]["commoditynum"].ToString() != "合计:")
{
MM.Rows[i]["commodityID"] = data.data2.Rows[i]["commodityID"];
MM.Rows[i]["commoditynum"] = data.data2.Rows[i]["commoditynum"].ToString().Trim();
MM.Rows[i]["commodityname"] = data.data2.Rows[i]["commodityname"];
MM.Rows[i]["unitd"] = data.data2.Rows[i]["unitd"];
MM.Rows[i]["color"] = data.data2.Rows[i]["color"];
MM.Rows[i]["grade"] = data.data2.Rows[i]["grade"];
MM.Rows[i]["purchasecount"] = data.data2.Rows[i]["purchasecount"];
MM.Rows[i]["kehublance"] = data.data2.Rows[i]["kehublance"];//客户单价
MM.Rows[i]["discountgrade"] = data.data2.Rows[i]["discountgrades"];
MM.Rows[i]["purchasemoney"] = data.data2.Rows[i]["purchasemoney"];
MM.Rows[i]["discountgradeprice"] = data.data2.Rows[i]["discountgradeprice"];
MM.Rows[i]["inventorycount"] = data.data2.Rows[i]["inventorycount"];
MM.Rows[i]["remark1"] = data.data2.Rows[i]["remark1"];
pp += Convert.ToDecimal(MM.Rows[i]["purchasemoney"]);
}
}
dgclass.ItemsSource = MM.DefaultView;
gonyinhang.Text = pp.ToString();//应收
linkma.Text = pp.ToString();//预收
}
5.对于下拉框选中后联绑定单元格我是获取选中值查询出与之相关联我要显 示在表格里 的数据然后进行表格对应单元格赋值
for (int i = 0; i < MM.Rows.Count; i++)
{
string commoditynum = MM.Rows[i]["commoditynum"].ToString();
string kehublance = MM.Rows[i]["kehublance"].ToString().Trim();//单价
string purchasecount = MM.Rows[i]["purchasecount"].ToString().Trim();
int clientID = Convert.ToInt32(gonyinshang.SelectedValue);//客户
if (commoditynum != string.Empty && purchasecount != string.Empty && kehublance != string.Empty && clientID > 0){
DataTable table2 = myCaigoudinghuoClient.UserControl_Loaded_Selectcommoditytail(commoditynum).Tables[0];
DataTable table3 = myKehudinggouClient.UserControl_Loaded_Selectdiscountgrade(clientID).Tables[0];
MM.Rows[i]["commodityname"] = table2.Rows[0]["commodityname"].ToString();
MM.Rows[i]["discountgrade"] = table3.Rows[0]["discountgrade"].ToString();//折扣
MM.Rows[i]["unitd"] = table2.Rows[0]["unitd"].ToString();
MM.Rows[i]["color"] = table2.Rows[0]["color"].ToString();
MM.Rows[i]["grade"] = table2.Rows[0]["grade"].ToString();
MM.Rows[i]["discountgradeprice"] = Convert.ToDecimal(kehublance) * Convert.ToDecimal(table3.Rows[0]["discountgrade"]);//折后价=单价*折扣
MM.Rows[i]["purchasemoney"] = Convert.ToDecimal(purchasecount) * Convert.ToDecimal(kehublance) * Convert.ToDecimal(table3.Rows[0]["discountgrade"]);//金额=数量*折后价
MM.Rows[i]["inventorycount"] = table2.Rows[0]["inventorycount"].ToString();
pp += Convert.ToDecimal(MM.Rows[i]["purchasemoney"]);
版权声明:本文为weixin_44546554原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。