Daizen Ikehara

インフラジスティックス・ジャパン株式会社の元デベロッパー エバンジェリスト、現製品担当の Blog 2019年1月1日を持って、新Blogに移行いたしました。移行先のBlogは https://blogs.jp.infragistics.com となります。

Archives

[DevDays8] ローカライズ可能なリソース文字列 [Win][WPF][Silverlight]

Developer Days 8 名古屋で次のようなご質問を頂きました。

Q. 製品で提供されているリソース文字列の変更は可能か。ランタイムで変更できるのが望ましい

NetAdvantage の Windows Forms, WPF, Silverlight には製品で提供しているリソースの変更が可能になっています。

Windows Forms – アセンブリ リソース文字列のカスタマイズ

WPF – アセンブリ リソース文字列

Silverlight - リソース文字列のカスタマイズ

特に Silverlight ではこの 2011 Volume1 において導入されましたので、今回はそちらを利用してみます。このリソース文字列の変更についてはコントロール単位で切り替えを行う形となります。

データのバインドとフィルタリング

Expression Blend のサンプルデータ機能を利用し、xamGrid にデータをバインドし、フィルタリング設定を有効にします。

<UserControl
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:ig="http://schemas.infragistics.com/xaml" 
    x:Class="SL_XG_Resources.MainPage"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">
    <Grid x:Name="LayoutRoot" Background="White" 
          DataContext="{Binding Source={StaticResource SampleDataSource}}">
    	<ig:XamGrid x:Name="xg1" ItemsSource="{Binding Customer}">
            <ig:XamGrid.FilteringSettings>
                <ig:FilteringSettings 
                    AllowFiltering="FilterRowTop" 
                    AllowFilterRow="Top" />
            </ig:XamGrid.FilteringSettings>
        </ig:XamGrid>
    </Grid>
</UserControl>

実行するとフィルタ条件が予め設定されている文字列で表示されます。

image

カスタム リソース ファイルを追加

新しいアセンブリ リソースファイルを追加します。

image

含むという文字列は ContainsString というキーで設定されているので、こちらをカスタマイズします。

image

登録

登録のメソッドが用意されています。ただし、残念ながら動的に登録を行うことができません。

public MainPage()
{
    // リソース文字列のカスタマイズ
    XamGrid.RegisterResources(
        "SL_XG_Resources.Resources.CustomResources",
        typeof(MainPage).Assembly);

    InitializeComponent();
}

実行結果

image

このリソース文字列の一覧についてはまた次回に・・・

SL_XG_Resources.zip

DevDays 8 関連エントリ

Comments

WPF と UX なBlog said:

Developer Days 8 名古屋で次のようなご質問を頂きました。 Q. 製品で提供されているリソース文字列の変更は可能か。ランタイムで変更できるのが望ましい NetAdvantage の Windows

# July 20, 2011 3:01 AM

Daizen Ikehara said:

ちょっと時間が空いてしまいましたが、Develoer Days 8 名古屋会場にて次のようなご質問をいただいていました。 Q. NetAdvantage for Reportingでは動的にイメージファイルを出力することができるか?

# July 27, 2011 11:03 PM

Satoru Yamaguchi said:

弊社のUIコントロールは、英語圏で開発されておりますが日本を含む各世界国向けにローカライズされております。コントロールのデザインや挙動は全て同一ですが、ユーザインタフェースに必要な表記の中で世界共通にできない部分(※)は、各国向けにローカライズされています。

# February 27, 2014 6:30 PM
Anonymous comments are disabled