【发布时间】:2018-03-05 11:37:11
【问题描述】:
由于不可能让DataGrid 标头动态读取某些资源文件,因此我使用了在 SO 上找到的方法来执行此操作。它通过将TextBlock 作为资源来工作,该资源正在动态读取其他一些string 资源。像这样的:
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Header="{StaticResource dghName}"/>
<DataGridTextColumn Header="{StaticResource dghAge}"/>
</DataGrid.Columns>
</DataGrid>
在资源中我会有这个:
<TextBlock x:Key="dghName" Text="{DynamicResource Name}"/>
<TextBlock x:Key="dghAge" Text="{DynamicResource Age}"/>
<sys:String x:Key="Name">Name</sys:String>
<sys:String x:Key="Age">Age</sys:String>
字符串资源位于某个单独的文件中,当我将它换成具有相同键但使用其他语言的文本的其他文件时,标题会更改。
这一切都很好,直到需要在两个地方使用相同的资源。我在两个TabItems 中有相同的DataGrid。当我打开第一个时,标题正常显示,然后我切换到另一个选项卡,标题也在那里。现在,当我改回第一个 TabItem 时,标题为空。如果我先打开第二个选项卡,也会发生同样的事情 - 当我切换到第一个选项卡然后返回到第二个选项卡时,标题为空。
如果我打开第二个选项卡时没有标题,但它们第一次显示在两个选项卡上,然后当我打开一个选项卡(这是第一个打开)第二次。
资源在资源字典中,如XAML 文件。
【问题讨论】:
标签: c# wpf xaml resourcedictionary