2013-03-27 22 views
0

如何转换ListViewDataTable如何将ListView转换为WPF中的Datatable?

XAML

<ListView x:Name="listViewUserHUD" ItemsSource="{Binding CollectionUserData}" ScrollViewer.HorizontalScrollBarVisibility="Disabled" IsSynchronizedWithCurrentItem="True" util:GridViewSort.AutoSort="True" Margin="16,59,15,61"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn DisplayMemberBinding="{Binding FileNumber}" Header="FileNumber" Width="125" util:GridViewSort.PropertyName="FileNumber" /> 
      <GridViewColumn DisplayMemberBinding="{Binding ShiftDate}" Header="ShiftDate" Width="125" util:GridViewSort.PropertyName="ShiftDate"/> 
      <GridViewColumn DisplayMemberBinding="{Binding TimeCreated}" Header="TimeCreated" Width="125" util:GridViewSort.PropertyName="TimeCreated" /> 
      <GridViewColumn DisplayMemberBinding="{Binding Remarks}" Header="Remarks" Width="350" util:GridViewSort.PropertyName="Remarks" /> 
     </GridView> 
    </ListView.View> 
</ListView> 

代码工作:

var listView1 = new ListView(); 

DataTable table = new DataTable(); 

foreach (ListViewItem item in listView1.Items) 
{ 
    table.Columns.Add(item.ToString()); 
    foreach (var it in item.SubItems) 
    table.Rows.Add(it.ToString()); 
} 

这是我现在的代码,但我正在努力做的是。每当我生成ListView上的项目时,如何将ListView转换为DataTable

+0

什么是'CollectionUserData'? – 2013-03-27 07:15:51

+0

来自我的sqlite数据库的集合。 – Jesson 2013-03-27 07:20:37

回答

1

这是更好地创建表右侧形成你的数据源对象:

// Create the `DataTable` structure according to your data source 
DataTable table = new DataTable(); 
table.Columns.Add("FileNumber", typeof(int)); 
table.Columns.Add("ShiftDate", typeof(DateTime)); 
table.Columns.Add("TimeCreated", typeof(DateTime)); 
table.Columns.Add("Remarks", typeof(string)); 

// Iterate through data source object and fill the table 
foreach (var item in CollectionUserData) 
{ 
    table.Rows.Add(item.FileNumber, item.ShiftDate, item.TimeCreated, item.Remarks); 
} 
+0

适合我!感谢人:D – Jesson 2013-03-27 23:11:01

-1

试试这个:

var table = listViewUserHUD.DataSource as DataTable 
+1

由于'ListView'没有任何'DataSource' DP,这是行不通的。 – 2013-03-27 08:38:00