dawnwind 发表于 2017-2-15 16:42:51

C1DataGrid和C1FlexGrid 新行的提示如何切换多语言显示

C1DataGrid和C1FlexGrid 表格有追加新行的提示时,如何切换多语言显示。
比如:

换成英文:

现在代码里通过改变Culture,界面其它资源都可以变,只有Grid这里提示有时候不变,是否控件需要特别设置?

Thread.CurrentThread.CurrentCulture = Thread.CurrentThread.CurrentUICulture = new CultureInfo(g_strSelectLanguage);

Alice 发表于 2017-2-15 18:07:01

谢谢您的反馈。
通过LoadedRowPresenter事件可以拿到WatermarkText 属性进行文字的自定义。
代码参考:
void c1DataGrid1_LoadedRowPresenter(object sender, C1.WPF.DataGrid.DataGridRowEventArgs e)
{
   if (e.Row.GetType() == typeof(C1.WPF.DataGrid.DataGridNewRow))
    {
      C1.WPF.DataGrid.DataGridNewRow dNew = e.Row as C1.WPF.DataGrid.DataGridNewRow;
      ((C1.WPF.DataGrid.DataGridNewRowPresenter)(dNew.Presenter)).WatermarkText = "This is customized New Row Text";            
    }
}

dawnwind 发表于 2017-2-16 10:13:08

本帖最后由 dawnwind 于 2017-2-16 10:22 编辑

感谢回复,DataGrid按照参考代码已经解决。
但还是想知道通过改变Culture为什么不能解决,
因为程序重新启动后有时候是可以改变的。
说明控件是可以根据Culture设置的的不同语言而自行改变语言提示。
是否需要特别注意些事项。

Alice 发表于 2017-2-16 14:00:30

dawnwind 发表于 2017-2-16 10:13
感谢回复,DataGrid按照参考代码已经解决。
但还是想知道通过改变Culture为什么不能解决,
因为程序重新 ...

默认是根据系统变化,Culture也可以改变语言。
无法重现您那里提到的问题。

dawnwind 发表于 2017-2-17 16:51:37

我要的效果就是demo里点击button,界面上Grid那就话就可以改变语言的。
demo启动时是可以按照指定的calture显示的。

Alice 发表于 2017-2-17 17:32:17

dawnwind 发表于 2017-2-17 16:51
我要的效果就是demo里点击button,界面上Grid那就话就可以改变语言的。
demo启动时是可以按照指定的caltur ...
非常感谢您提供的Demo。
您在Demo中运行时动态修改语言。
在WPF平台下,控件中展示的文字都是写在resource文件中的,Culture语言的修改需要在加载之前进行。
如果已经加载过,resource在运行时是被Catch住的。
WPF平台下,无法重新的再去加载resource资源,它使用的是加载前的资源。
但是个别还未显示出来的(比如format类),有可能在运行时发生语言的改变。因此就会产生您提到的有的发生改变,有的没有改变的问题。

WPF平台不支持运行时动态修改Catch住的resouce资源。(重启后会释放cathc的资源,进行更新)

dawnwind 发表于 2017-2-17 17:35:12

明白了,感谢回复

Alice 发表于 2017-2-17 17:49:15

dawnwind 发表于 2017-2-17 17:35
明白了,感谢回复

不用客气。
周末愉快。{:4_86:}
页: [1]
查看完整版本: C1DataGrid和C1FlexGrid 新行的提示如何切换多语言显示