1、数据绑定:grdLbs.ItemsSource = 数据集合对象; 2、普通绑定列: ...... 3、模板列: 不知道为啥套这么多层,为了保暖? >_< 在LoadingRow事件中,获取其中的图片控件: Image img = grdLbs.Columns[3].GetCellContent(e.Row).FindName("imgLogo") as Image; (图片所在的模板列在第4列时,列序号时3) 如果是获取选中行的图片控件: Image img = grdLbs.Columns[3].GetCellContent(grdLbs.SelectedItem).FindName("imgLogo") as Image; 4、LoadingRow事件: 生成行时触发。和普通的GRID不同,SilverLight里的行只在显示时才生成,没显示出来的(需要滚动条显示的) ,不会生成,滚动隐藏再次显示时,会重新生成。这种特性可能会造成显示的效果和预计的不一样,要略加注意。 5、DataGridRow,即行对象: 不像普通的GRID,SilverLight里没有很直观的行集合(因为显示不到的行可能没有生成,或者被销毁了)。在LoadingRow事件里,通过其参数,是唯一获取该DataGridRow对象的途径。 6、遍历单元格: SilverLight遍历单元格的方式,先取得列对象,然后通过其GetCellContent()方法取某行的单元格。该方法的参数 是DataGridRow,或者绑定数据源中的某条数据, 返回值是代表单元格的FrameworkElement 对象。 该对象的FindName()方法,用于取得模板列中的控件。 7、SelectionChanged 也是较常用的事件。 grdLbs.SelectedItem 是选中行相关的实体数据源对象。 Bas_CpLb lb = (Bas_CpLb)grdLbs.SelectedItem; 8、模板列中的按钮: 和外面的按钮一样,可以使用Click事件,而相关的参数,可以通过Tag属性传递使用。