2

所有,我是 WPF 的新手。我想阅读一个 .resx 文件和所有具有不同文化的相关文件;例如,名为“SomeFile.resx”的默认“en-GB”.resx 文件和德语类似物“SomeFile.de-DE.resx”。当然,我可以拥有大量与各种文化相关的不同 .resx 文件。

所以,我想把所有不同的文化资源读成一个单一的DataGrid,这样我就有了类似的东西

Resource Index | Resource Key | English (Default) | German
1              | SomeKey1     | Run Script        | Skript Ausführen 
2              | SomeKey2     | OK                | OK

等。我的问题是将这些数据添加到DataGrid被调用的dataGrid. 所以我目前将可用的非默认 .resx 文件放入Dictionary<string, string>

Dictionary<string, string> cultureDict = new Dictionary<string, string>();

然后我计划使用 .resx 文件来遍历不同的 .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

使用 observablecollection ItemCollection 在数据网格中添加新行

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