簡體   English   中英

在運行時將DataGrid標頭文本綁定到WPF MVVM中的屬性

[英]Bind DataGrid Headers Text to properties in WPF MVVM at runtime

我有一個datagrid,我想在運行時更改其列標題。 我已經嘗試過類似的方法,但是沒有用

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

在我的MVVM中

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

但是不起作用。 任何想法將不勝感激

如果在輸出窗口中查看,您會發現您可能會遇到綁定表達式異常,因為MyNewHeader不是該行中項目的屬性。

因此,您需要通過relativesource綁定將其綁定到父對象

看一下以下示例https://wpftutorial.net/BindingExpressions.html

只要MyHeaderProperty屬於父DataGridDataContext (即視圖模型),這應該可以工作:

<DataGridTextColumn Binding="{Binding MyBindingProperty}">
    <DataGridTextColumn.HeaderTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Path=DataContext.MyHeaderProperty, RelativeSource={RelativeSource AncestorType=DataGrid}}" />
        </DataTemplate>
    </DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM