[英]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綁定將其綁定到父對象
只要MyHeaderProperty
屬於父DataGrid
的DataContext
(即視圖模型),這應該可以工作:
<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.