繁体   English   中英

Silverlight DataGrid和绑定列

[英]Silverlight DataGrid and Binding columns

我有一个Silverlight Datagrid控件,并且列autogenerate属性设置为false。 我正在使用MVVM,并希望绑定列集合。

我得到的数据来自xml。 类似于示例代码

http://blogs.msdn.com/b/deepak_verma/archive/2008/07/19/dynamic-creation-binding-of-silverlight-datagrid.aspx

现在,通过将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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM