在运行时向WPF数据网格添加行和列
本文关键字:网格 添加行 数据网 数据 运行时 WPF | 更新日期: 2023-09-27 18:06:02
大家好,我是WPF的新手。我想读一个。resx文件和所有不同文化的相关文件;例如,默认的'en-GB' .resx文件名为'SomeFile '。'SomeFile.de-DE.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>();
然后我计划使用ResXResourceReader
循环遍历不同的.resx文件(对于许多区域性)来读取.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);
但是对于这种特殊情况,这是添加行的最佳方式。
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();
}
使用observablecollection ItemCollection在数据网格中添加新行
itemmodel model=new itemmodel ();
model.name='Rahul';
ItemCollection.add(model);