[英]Silverlight DataGrid and Binding columns
我有一个Silverlight Datagrid控件,并且列autogenerate属性设置为false。 我正在使用MVVM,并希望绑定列集合。
我得到的数据来自xml。 类似于示例代码
现在,通过将datagrid控件从xmal文件传递到modelview,我可以得到预期的行为,但是通过这种方式,我在datagrid控件中添加了列。
有什么办法,这样我就可以将列集合与datagrid控件绑定在一起,从而无需将控件传递给视图模型。
-拉杰什
听起来像您在那里的MVVM的一个奇怪实现。 您的ViewModel应该完全独立于View。 如果要在网格上创建动态列,那为什么不在ViewModel上公开相关的属性集合,并在后面的View代码上的相关方法中对它进行遍历
//Used with an Infragistics XamWebGrid control
private void BuildGrid() {
foreach (var dataItem in **ViewModel**.MyDataCollection)
{
var myCol = new TemplateColumn
{
HeaderText = dataItem.ItemNm,
Key = dataItem.PrimaryKey
};
MyGrid.Columns.Add(myCol);
}
}
您确实不应该将控件从View传递到ViewModel。 ViewModel应该不了解View上的任何控件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.