表1:T_Node
ID Nmae EquipMode Version
1 某小区 1642em 3.0表2:T_Categroy 假如有四条数据
ID Item Categroy
1 1642em EquipModel
2 1662smc EquipModel
3 3.0 1642em
4 3.1 1642em
5 2.3 1662smc
6 2.7 1662smc一、有问题出现
1、从表2中获取数据返回string[] 赋给comboEquipModel 的ItemSource
sql="select Item from T_Categroy Where Categroy='EquipMidel'"
此时comboEquipModel下拉表里有两个肉容分别是 1642em 和1642emc 说明读取没问题
ComboEquipModel 的Text="{Binding EquipModel}"
-------------我问的问题就一个在下面
我是先赋值给ItemSource的,之后才做的数据上下文绑定为什么comboEquipMode.Text在界面loading后是空的而不是1662smc(表1中的),更可恨的用comboEquipModel.Text=表1中的EquipModel字段也不显示
因为我改变comboEquipMode控件中的selectedItem后 DataGrid中的Cell内容跟着改变,说明了
Text="{Binding EquipModel}"这句话声效了
表1中的1642em是我从表2中复制过来的,我怕是我输错导制的
---------------------------------
Combo的父控件Grid.Datacontext=(强转成结构体类)datagrid.selecteditem
二、comboVersion是用同样的方法做的,没问题
只不过where条件是 Categroy=表1中的EquipMode也就是1642em
在窗体加载后
Text=3.0
基中Items里包括3.0 和3.1两个条目
ID Nmae EquipMode Version
1 某小区 1642em 3.0表2:T_Categroy 假如有四条数据
ID Item Categroy
1 1642em EquipModel
2 1662smc EquipModel
3 3.0 1642em
4 3.1 1642em
5 2.3 1662smc
6 2.7 1662smc一、有问题出现
1、从表2中获取数据返回string[] 赋给comboEquipModel 的ItemSource
sql="select Item from T_Categroy Where Categroy='EquipMidel'"
此时comboEquipModel下拉表里有两个肉容分别是 1642em 和1642emc 说明读取没问题
ComboEquipModel 的Text="{Binding EquipModel}"
-------------我问的问题就一个在下面
我是先赋值给ItemSource的,之后才做的数据上下文绑定为什么comboEquipMode.Text在界面loading后是空的而不是1662smc(表1中的),更可恨的用comboEquipModel.Text=表1中的EquipModel字段也不显示
因为我改变comboEquipMode控件中的selectedItem后 DataGrid中的Cell内容跟着改变,说明了
Text="{Binding EquipModel}"这句话声效了
表1中的1642em是我从表2中复制过来的,我怕是我输错导制的
---------------------------------
Combo的父控件Grid.Datacontext=(强转成结构体类)datagrid.selecteditem
二、comboVersion是用同样的方法做的,没问题
只不过where条件是 Categroy=表1中的EquipMode也就是1642em
在窗体加载后
Text=3.0
基中Items里包括3.0 和3.1两个条目
做这个小软件是为了方便自己工作用的典型的ListUI+EditUI
刚才把新增保存的功能做完了,做了下面测试我实际的类型中有好多就1642em不能通过
我选择1642em 保存后,在编辑 comboEquipModel.Text="";
我选择1642emc 保存后,在编辑 comboEquipMode.Text=1642emc
我选择1662smc 保存后 在编辑comboEquipMode.Text=1662smc
我选择1660sm 保存后在编辑这行 comboEquipMode.Text=1660sm
我选择1678mcc 保存后在编辑刚保存的行 comboEquipMode.Text=1678mcc我都是从combo选择后保存的,跟本不存在输错的情况啊 1642em这个字符串咋这么牛呢?
咋就不行呢,这个型号是我们单位最常用的
绑定代码就下边这行在一层都写了
ComboEquipModel 的Text="{Binding Equipmodel}"下边详细的,请帮忙分析吧 <ComboBox Text="{Binding Equipmodel}" DisplayMemberPath="Item" SelectedValuePath="Item"/>comboEquipModel.Datacontext=node(Node类的声明在下边有)
//GetItems的方法我在最下边给出了
cbEquipmodel.ItemsSource = CategoryDAL.GetItems("T_Node_Equipmodel");
public class Node
{
//数据库中对应的表名:T_Node,属性跟表中的字段完全对应
public int ID { get; set; }
public string Cname { get; set; }
public string Ename { get; set; }
public string Equipmodel { get; set;}
public string Version { get; set; }
public string Area { get; set; }
public string Nsapid { get; set; }
public string Oslan { get; set; }
public string Ptop { get; set; }
public string Procnum { get; set; }
public string Procid { get; set; }
public bool? Inos { get; set; }
public DateTime? Edate { get; set; }
public string Re { get; set; } cbEquipmodel.ItemsSource = CategoryDAL.GetItems("T_Node_Equipmodel");
public class Category
{
//数据库中对应的表名:T_Categroy
public int ID { get; set; }
public string Item { get; set; }T_Category表中的数据
ID Item Category
1 1642emc T_Node_Equipmodel
2 1642em T_Node_Equipmodel
3 1662smc T_Node_Equipmodel
4 1660sm T_Node_Equipmodel
5 1678mcc T_Node_Equipmodel
6 3.0 1642em
7 3.1 1642em
8 1.2 1642emc
9 ..... ......
public static Category[] GetItems(string categoryValue)
{
DataTable table = AccessHelper.ExecuteDataTable("select ID, Item from T_Category where Category=@Category", new OleDbParameter("@Category", categoryValue)); Category[] categorys = new Category[table.Rows.Count];
for (int i = 0; i < table.Rows.Count; i++)
{
Category category = new Category();
category.ID = (int)table.Rows[i]["ID"];
category.Item = (string)table.Rows[i]["Item"];
categorys[i] = category;
}
return categorys;
}
我9月1日刚学WPF和ado 至今天才9天,你有必要这么埋态人吗?
新手碰钉子很正常吧。告诉你,我在上海贝尔做通讯的一样工资过W,也不需要招聘什么程序员,
我会遵重所有的人,也希望大家以诚相待。
ID Item Category
1 1642emc T_Node_Equipmodel
2 1642em T_Node_Equipmodel
3 1662smc T_Node_EquipmodelID Item Category
1 1642em T_Node_Equipmodel
2 1642emc T_Node_Equipmodel
3 1662smc T_Node_Equipmodel