すべて、私はWPFを初めて使用します。.resxファイルと異なる文化のすべての関連ファイルを読みたいです。たとえば、「SomeFile.resx」および「SomeFile.de-DE.resx」と呼ばれるデフォルトの「en-GB」.resxファイルはドイツ語に類似しています。もちろん、さまざまな文化に関連する膨大な数の異なる.resxファイルを持つことができます。
だから、私はすべての異なる文化リソースを単一に読みたいDataGrid
ので、私は次のようなものを持っています
Resource Index | Resource Key | English (Default) | German
1 | SomeKey1 | Run Script | Skript Ausführen
2 | SomeKey2 | OK | OK
etal。DataGrid
私の問題は、このデータを呼び出されたに追加するための最良の方法dataGrid
です。だから私は現在、利用可能なデフォルト以外の.resxファイルをDictionary<string, string>
Dictionary<string, string> cultureDict = new Dictionary<string, string>();
次に、を使用してさまざまな.resxファイル(多数のカルチャ用)をループし、次のResXResourceReader
ように.resxファイルを読み取ることを計画しています。
Dictionary<string, string> resourceMap = new Dictionary<string, string>();
public static void Func(string fileName)
{
ResXResourceReader rsxr = new ResXResourceReader(fileName);
foreach (DictionaryEntry d in rsxr)
{
resourceMap.Add(d.Key.ToString(),d.Value.ToString());
}
rsxr.Close();
}
public string GetResource(string resourceId)
{
return resourceMap[resourceId];
}
List<Dictionary<string, string>>
異なる文化の読者からの情報を保持するためにを作成し、次にループしてList
行を追加することを計画していました。
私の質問は、文化の数が変動し、潜在的に大きいことを念頭に置いて、これらのリーダーから返されたデータを配置するための最良かつ最も効率的な方法は何ですか?DataGrid
御時間ありがとうございます。
注:列を追加できます
DataGridTextColumn itemColumn = new DataGridTextColumn();
itemColumn.Header = "Item Number";
itemColumn.Binding = new Binding("Item Number");
dataGrid.Columns.Add(itemColumn);
ただし、この特定の場合に行を追加するのが最善の方法です。