日期:2014-05-16  浏览次数:20740 次

ObservableCollection<DataRow> 绑定问题
我用ObservableCollection<DataRow> 里面的数据集合绑定 DataGrid 的数据后
有行 正名已经绑定上数据了 但是 但列里面就没有数据 请问这是为什么啊
  public class cs
    {
        public String Name { get; set; }
        public int IsCleck { get; set; }
    }
  List<cs> lcs = new List<cs>();
  for (int i = 0; i < 10; i++)
 {
     cs csy = new cs();
     csy.Name = "测试" + i.ToString();
     csy.IsCleck = 1;
     lcs.Add(csy);
  }
  ObservableCollection<DataRow> rd = new  ObservableCollection<DataRow>()

   foreach (object item in lcs)
            {
                DataRow row = new DataRow();
                row.Fill(item);
                rd.Add(row);
            }   
datagrid.ItemsSource = rd;

绑定后光有行没有列  因为直接把 datagrid.ItemsSource =lcs 是可用的
///xaml 部分 
 <DataGridTextColumn Header="Name" Width="80" Binding="{Binding Name}"/>

求解
------解决方案--------------------
你这样只能绑DataRow的属性,你试试RowState
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/
------解决方案--------------------
Binding Name   你的DataRow  和 
 public class cs
    {
        public String Name { get; set; }
        public int IsCleck { get; set; }
    }
这个一样吗 不一样就不行 
------解决方案--------------------
直接绑cs的结构啊
  public class cs
     {
         public String Name { get; set; }
         public int IsCleck { get; set; }
     }
      ObservableCollection<cs> lcs= new  ObservableCollection<cs>();
   for (int i = 0; i < 10; i++)
  {
      cs csy = new cs();
      csy.Name = "测试" + i.ToString();
      csy.IsCleck = 1;
      lcs.Add(csy);
   }

 datagrid.ItemsSource = lcs;