Kendo ui 带MVVM的剑道网格,绑定列可见性

Kendo ui 带MVVM的剑道网格,绑定列可见性,kendo-ui,kendo-grid,kendo-mvvm,Kendo Ui,Kendo Grid,Kendo Mvvm,我有一个使用MVVM的剑道网格。 我的问题是,我似乎无法使用隐藏属性和表达式设置列可见性: data-columns= "[{'template':'# if (User!=null) { # #=User.Name# # } #', 'title':'User', 'hidden': User==null} 模板可以工作,但“隐藏”属性似乎不起作用 有什么方法可以让它工作吗?只有通过数据绑定指定的属性参与MVVM更改跟踪。其他数据属性映射到

我有一个使用MVVM的剑道网格。 我的问题是,我似乎无法使用隐藏属性和表达式设置列可见性:

data-columns=
             "[{'template':'# if (User!=null) { # #=User.Name# # } #',
             'title':'User', 'hidden': User==null}
模板可以工作,但“隐藏”属性似乎不起作用


有什么方法可以让它工作吗?

只有通过
数据绑定指定的属性参与MVVM更改跟踪。其他数据属性映射到小部件配置属性,并且不会根据视图模型进行评估


当前没有允许您隐藏和显示网格列的绑定。

作为替代,您可以绑定到
数据绑定
数据绑定
事件以有条件地隐藏列:

data-bind="events:{ dataBinding: onDataBinding }"
视图模型:

var viewModel = kendo.observable({
    User: null,
    showHideUserColumn: function (e) {
        var grid = e.sender;

        if (this.User) {
            grid.showColumn("User");
        } else {
            grid.hideColumn("User");
        }
    },
    onDataBinding: function (e) {
        this.showHideUserColumn(e);

        // if you want to track changes, (re)bind change tracking
        this.unbind("change", this.showHideUserColumn);
        this.bind("change", this.showHideUserColumn);
    }
});

User==null将在全局上下文中执行-在那里可以访问用户变量吗?是的,我可以提供一个。没有办法得到表达式来计算绑定时间吗?这里的假设是该列是基于字段的列。如果列是命令列并且没有字段名,您知道如何使其工作吗?(