如何在WPF中显示数据网格
本文关键字:数据 数据网 网格 显示 WPF | 更新日期: 2023-09-27 17:49:52
我正在逐行阅读使用互操作的word文档。现在,我希望将这些行显示在数据网格上,该网格使用XAML代码。
DataTable dt = new DataTable();
dt.Columns.Add("Text");
for (int i = 0; i < doc.Sentences.Count; i++)
{
//string temp = doc.Paragraphs[i + 1].Range.Text.Trim();
string temp = doc.Sentences[i + 1].Text;
if (temp != string.Empty)
{
data.Add(temp);
dt.Rows.Add(new object[] { data });
}
}
在数据上下文中创建一个属性,返回数据表(假设数据上下文中实现了INotifyPropertyChanged):
private DataTable _aTable;
public DataTable aTable
{
get
{
return _aTable;
}
set
{
_aTable= value;
RaisePropertyChanged("aTable");
}
}
然后在你的数据网格的xaml绑定ItemSource到你的dataTable属性:
<DataGrid AutoGenerateColumns="true" ItemsSource="{Binding aTable}" >
在XAML中声明dataGrid:
<DataGrid x:Name="dataGrid"/>
,一旦你的数据表被填满,你可以将它的DataView
设置为DataGrid的ItemsSource
:
dataGrid.ItemsSource = dt.AsDataView();
或
在DataTable
类型的ViewModel中声明属性并绑定到它
你可以将Datatable绑定到Grid的ItemsSource,并将AutoGeneratColumns设置为"true"。
[XAML]<DataGrid AutoGenerateColumns="true" ItemsSource="{Binding dt}">
(c#) private DataTable _dt;
public DataTable dt
{
get
{
return _dt;
}
set
{
_dt= value;
}
}
Void Load()
{
dt.Columns.Add("Text");
for (int i = 0; i < doc.Sentences.Count; i++)
{
string temp = doc.Sentences[i + 1].Text;
if (temp != string.Empty)
{
data.Add(temp);
dt.Rows.Add(new object[] { data });
}
}
}