如何将.resx
文件和ViewModel
中的两个字符串绑定到DataGrid
列标题中。以下代码仅绑定Resources文件中的字符串。
<DataGridTextColumn Binding="{Binding Length}">
<DataGridTextColumn.Header>
<TextBlock>
<Run Text="{x:Static p:Resources.Length}" />
<Run Text="{Binding LengthUnit}" />
</TextBlock>
</DataGridTextColumn.Header>
</DataGridTextColumn>
VM:
public string LengthUnitName {
get { return _lengthUnitName; }
set { SetProperty(ref _lengthUnitName, value); }
}
答案 0 :(得分:1)
定义HeaderTemplate
:
<DataGridTextColumn Binding="{Binding Length}">
<DataGridTextColumn.HeaderTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{x:Static p:Resources.Length}" />
<Run Text="{Binding Path=Items[0].LengthUnit, RelativeSource={RelativeSource AncestorType=DataGrid}, Mode=OneWay}" />
</TextBlock>
</DataTemplate>
</DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>
如果在视图模型中定义了LengthUnit
属性,则可以这样绑定:
<Run Text="{Binding Path=DataContext.LengthUnit, RelativeSource={RelativeSource AncestorType=DataGrid}, Mode=OneWay}" />