C# 在运行时向WPF数据网格添加行和列

C# 在运行时向WPF数据网格添加行和列,c#,wpf,datagrid,C#,Wpf,Datagrid,总之,我是WPF的新手。我想阅读一个.resx文件和所有具有不同文化背景的相关文件;例如,一个名为“SomeFile.resx”和“SomeFile.de-de.resx”的默认“en GB”.resx文件是德语的类似文件。当然,我可以拥有大量不同的.resx文件,这些文件涉及不同的文化背景 因此,我想将所有不同的区域性资源读入一个DataGrid,这样 Resource Index | Resource Key | English (Default) | German 1

总之,我是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
我的问题是如何将这些数据添加到名为
DataGrid
DataGrid
中。因此,我目前将可用的非默认.resx文件放入
字典中

我曾计划创建一个
列表
,保存来自不同文化背景的读者的信息,然后循环浏览
列表
,并添加行

我的问题是考虑到区域性的数量是可变的,并且可能很大,将这些读取器返回的数据放入
DataGrid
的最佳和最有效的方法是什么?

谢谢你抽出时间

注意:我可以添加列

但这是为这种特殊情况添加行的最佳方式。

公共静态无效显示网格(数据网格d,列表S1)
{
ds=新数据集();
DataTable dt=新的DataTable();
ds.Tables.Add(dt);
DataColumn cl=新的DataColumn(“项目编号”,类型(字符串));
cl.MaxLength=200;
dt.列。添加(cl);
int i=0;
foreach(S1中的字符串s)
{
DataRow rw=dt.NewRow();
rw[“项目编号”]=S1[i];
i++;
}
d、 ItemsSource=ds.Tables[0].AsDataView();
}

使用observablecollection ItemCollection在datagrid中添加新行

    itemmodel model=new itemmodel ();
model.name='Rahul';
ItemCollection.add(model);
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];
}
DataGridTextColumn itemColumn = new DataGridTextColumn();
itemColumn.Header = "Item Number";
itemColumn.Binding = new Binding("Item Number");
dataGrid.Columns.Add(itemColumn);
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();
}
    itemmodel model=new itemmodel ();
model.name='Rahul';
ItemCollection.add(model);