2013-03-27 2 views
0

Как сменить ListView на DataTable?Как преобразовать ListView в Datatable в WPF?

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 в DataTable каждый раз, когда я сгенерировал товар на ListView?

+0

Что такое 'CollectionUserData'? –

+0

коллекция из моей базы данных sqlite. – Jesson

ответ

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

-1

Попробуйте это:

var table = listViewUserHUD.DataSource as DataTable 
+1

Это не сработает, так как 'ListView' не имеет DP' DataSource'. –

Смежные вопросы