-1

ILSpy で mscorlib を開くと、リソース フォルダーに次のように表示されます。

Name, Value
[Format_InvalidString, Input string was not in a correct format.]

この文字列をローカライズする方法はありますか?

(コンテキスト: Silverlight アプリは、間違った数値が入力されるたびにこのメッセージをスローします。コンバーターを作成して何百もの場所に適用するよりも、これを変更する方がはるかに簡単です)。

4

2 に答える 2

0

Silverlight はサテライト アセンブリでローカライズされます。これらは、Silverlight のインストール場所で確認できます。私のマシンでは、Silverlight 5 が C:\Program Files (x86)\Microsoft Silverlight\5.1.20125.0 にインストールされています。必要に応じてバージョン番号を調整してください。

2文字の名前を持つ多くのサブディレクトリに注意してください。たとえば、「ar」はアラビア語のサブディレクトリです。そのディレクトリを見て、そこにある mscorlib.resources.dll ファイルに注意してください。これは、例外メッセージ文字列を含む、ローカライズされた文字列を含むサテライト アセンブリです。その特定のディレクトリ内のアラビア文字列。

ユーザーが優先言語としてアラビア語を選択しているマシンでは、自動的に表示されます。手伝う必要はありません。

于 2013-05-07T14:53:13.640 に答える
0

機能する唯一の解決策は次のとおりです。

public partial class MyEntity        
{
    public string MyField_string
    {
        get
        {
            return MyField.ToString();
        }
        set
        { 
            decimal res = 0;
            var b = Decimal.TryParse(value, out res);
            if (!b)
                throw new ArgumentException("Localized message");
            else
                this.MyField = Math.Round(res, 2);
        }
    }

    partial void OnMyFieldChanged()
    {
        RaisePropertyChanged("MyField_string");
    }
}

そして、MyField_stringの代わりにバインドしMyFieldます。

于 2013-05-13T16:10:20.830 に答える