DataGridTextColumn Column Header DynamicResource Binding Fail

Nov 5, 2009 at 3:35 PM

I am using the datagrid and gridtextcolumn for my application. I bind the column header with a string resource defined in resourceDictionary.

<dg:DataGridTextColumn Width="40" Header="{DynamicResource Header1}" Binding="{Binding Name}" />

But I find that the column header will not changed after reloading the resource from "Resource 1" to "Resource 2"

Resource 1.xaml

    <ResourceDictionary xmlns:x="" .........>

            <sys:String x:Key="Header1">Name(English)</sys:String>


Resource 2.xaml

    <ResourceDictionary xmlns:x="" .........>

            <sys:String x:Key="Header1">Name(Japanese)</sys:String>


I need this to support multi-language.

Can anyone help?


Nov 8, 2009 at 10:17 PM
Edited Nov 8, 2009 at 10:17 PM

For localization, you have to deal with project Resource.resx, (like WindowsForms )

In your project resources define string Header1

In code behind, you also have to declare property Header1 like this


//return string from resources.resx
public string Header1



	return Properties.Resources.Header1;





In xaml

Header="{Binding RelativeSource={RelativeSource Self}, Path=Header1}"



When you changed CultureUI, it will change your string.