[英]How to display datagrid in WPF?
我正在逐行阅读互操作的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"/>
并填充完DataTable之后,您可以将其DataView
设置为DataGrid的ItemsSource
:
dataGrid.ItemsSource = dt.AsDataView();
要么
在DataTable
类型的适当ViewModel中声明属性并绑定到该属性。
您可以将Datatable绑定到网格的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 });
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.