WPF-从DataGrid列标题中的.resx和VM绑定两个字符串
如何将.resx文件和ViewModel中的两个字符串绑定到DataGrid列标题中。下面的代码仅绑定资源文件中的字符串WPF-从DataGrid列标题中的.resx和VM绑定两个字符串,wpf,xaml,mvvm,binding,Wpf,Xaml,Mvvm,Binding,如何将.resx文件和ViewModel中的两个字符串绑定到DataGrid列标题中。下面的代码仅绑定资源文件中的字符串 <DataGridTextColumn Binding="{Binding Length}"> <DataGridTextColumn.Header> <TextBlock> <Run Text="{x:Static p:Resources.Length}" />
<DataGridTextColumn Binding="{Binding Length}">
<DataGridTextColumn.Header>
<TextBlock>
<Run Text="{x:Static p:Resources.Length}" />
<Run Text="{Binding LengthUnit}" />
</TextBlock>
</DataGridTextColumn.Header>
</DataGridTextColumn>
定义HeaderTemplate:
LengthUnit属性在哪里定义?@mm8它是ViewModel中的一个属性。它不起作用,我添加了一个转换器只是为了调试和检查我从视图模型接收到的值,但它从未到达转换器代码。我尝试了你提供的两种方法,但都不起作用。我还从构造函数中设置了LengthUnit,以确保设置正确,但效果不好。你真的将HeaderTemplate设置为DataTemplate了吗?哦,对不起,我的坏消息,我没有注意到校长
public string LengthUnitName {
get { return _lengthUnitName; }
set { SetProperty(ref _lengthUnitName, value); }
}
<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>
<Run Text="{Binding Path=DataContext.LengthUnit, RelativeSource={RelativeSource AncestorType=DataGrid}, Mode=OneWay}" />