表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两个条目

解决方案 »

  1.   

    ComboEquipModel  的selectindex没设置
      

  2.   

    我要疯了
    做这个小软件是为了方便自己工作用的典型的ListUI+EditUI
    刚才把新增保存的功能做完了,做了下面测试我实际的类型中有好多就1642em不能通过
    我选择1642em 保存后,在编辑 comboEquipModel.Text="";
    我选择1642emc 保存后,在编辑 comboEquipMode.Text=1642emc
    我选择1662smc 保存后 在编辑comboEquipMode.Text=1662smc
    我选择1660sm  保存后在编辑这行 comboEquipMode.Text=1660sm 
    我选择1678mcc 保存后在编辑刚保存的行 comboEquipMode.Text=1678mcc我都是从combo选择后保存的,跟本不存在输错的情况啊 1642em这个字符串咋这么牛呢?
    咋就不行呢,这个型号是我们单位最常用的
      

  3.   


    绑定代码就下边这行在一层都写了
    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;
            }
      

  4.   


    我9月1日刚学WPF和ado 至今天才9天,你有必要这么埋态人吗?
    新手碰钉子很正常吧。告诉你,我在上海贝尔做通讯的一样工资过W,也不需要招聘什么程序员,
    我会遵重所有的人,也希望大家以诚相待。
      

  5.   

    我把1行和2行的Item值对换一下,问题解决了,迷迷胡胡.
    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