【发布时间】:2014-07-08 10:11:51
【问题描述】:
如何:用来自 txt 文件(C#、WPF)的信息填充 DataGrid.DataContext
我正在尝试用我从一些 txt 文件中获得的信息填充我的 DataGrid。有一个名为“CONTACTS”的文件夹,其中有一些 (5) 个文件。这些文件是这样配置的:
John Doe.txt 的内容(不含列表符号):
- John Doe Corp.
- 先生
- 能源部
- 约翰
XAML:
<DataGrid AutoGenerateColumns="False" CanUserResizeRows="False" DockPanel.Dock="Bottom" ItemsSource="{Binding CollectionofDetails}" Name="dataGrid_Content">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding CorporationName}" Header="Firma" />
<DataGridTextColumn Binding="{Binding Prefix}" Header="Anrede" />
<DataGridTextColumn Binding="{Binding FirstName}" Header="Nachname" />
<DataGridTextColumn Binding="{Binding LastName}" Header="Vorname" />
</DataGrid.Columns>
</DataGrid>
C#:
public class Details
{
public string CorporationName { get; set; }
public string Prefix { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
public ObservableCollection<Details> _CollectionofDetails = new ObservableCollection<Details>();
public ObservableCollection<Details> CollectionofDetails
{
get { return _CollectionofDetails; }
set { _CollectionofDetails = value; }
}
public void SetItemsToDataContext()
{
foreach (string Datei in Directory.GetFiles(@"C:\Users\schwarz\Desktop\Cusposes_2014-05-20_0827\ISAPO\ISAPO Cusposes\Business Contacts\Contacts", "*.txt"))
{
StreamReader reader = new StreamReader(Datei);
int i = 0;
string line = reader.ReadToEnd().Replace("\n", "");
string[] t = line.Split('\r');
Details d = new Details();
d.CorporationName = t[i];
d.Prefix = t[i + 1];
d.FirstName = t[i + 2];
d.LastName = t[i + 3];
CollectionofDetails.Add(d);
reader.Close();
}
}
很遗憾,我确实有以下问题:
- 我不知道如何加载每个文件的内容(所有文件)。
- 我不知道如何用此信息填写我的
DataGrid。
--> Dhaval Patel 的解决方案(见下文)。
【问题讨论】:
-
创建一个“联系人”类,其中包含您要显示的数据的属性。用您从文件中读取的联系人填充 Collection
。将此列表分配给 DataGrid 的 ItemsSource。 -
谢谢,我去看看! ;)
标签: c# wpf xaml binding datagrid