2

すべて、私は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);

ただし、この特定の場合に行を追加するのが最善の方法です。

4

2 に答える 2

1
public static void Display_Grid(DataGrid d, List<string> S1)
{
    ds = new DataSet();
    DataTable dt = new DataTable();
    ds.Tables.Add(dt);

    DataColumn cl = new DataColumn("Item Number", typeof(string));
    cl.MaxLength = 200;
    dt.Columns.Add(cl);

    int i = 0;
    foreach (string s in S1)
    {
        DataRow rw = dt.NewRow();
        rw["Item Number"] = S1[i];
        i++;
    }
    d.ItemsSource = ds.Tables[0].AsDataView();
}
于 2013-03-26T16:45:46.563 に答える
0

observablecollectionItemCollectionを使用してデータグリッドに新しい行を追加します

    itemmodel model=new itemmodel ();
model.name='Rahul';
ItemCollection.add(model);
于 2018-12-18T07:08:37.413 に答える