在运行时将DataGrid标头绑定到WPF MVVM中的属性

时间:2017-10-04 08:01:57

标签: c# wpf mvvm

我有一个datagrid,我希望在运行时更改列标题。我尝试过类似的东西,但不起作用

    <DatagridTextColumn Header="{Binding Path=MyNewHeader}" Binding=" {Binding Path=MyBindingProperty}" />

在我的MVVM中

    string myHeaderProperty;
    public string MyHeaderProperty{
    get{
    return myHeaderProperty 
    }
    set{
    Set(ref myHeaderProperty, value);
    }

但是不起作用。任何想法将不胜感激

2 个答案:

答案 0 :(得分:0)

如果你看一下输出窗口,你会发现你可能会得到一个绑定表达式异常,因为MyNewHeader不是你行中项目的属性。

所以你需要通过relativesource binding

将它绑定到父级

看一下下面的例子 https://wpftutorial.net/BindingExpressions.html

答案 1 :(得分:0)

如果MyHeaderProperty属于父DataContext的{​​{1}},即视图模型,这应该有效:

DataGrid