In windows form applications, in the form load event I can load filtered excel file data to a listview by using the below code and also setting the properties of the listview GridLines to True & View to Details etc.
ExcelPackage.LicenseContext =LicenseContext.NonCommercial;
int lastRow = 0;
using (ExcelPackage package = new ExcelPackage(new System.IO.FileInfo(filename), false))
{
ExcelWorksheet mainSheet = package.Workbook.Worksheets.First();
for (int i = 2; i <= mainSheet.Dimension.End.Row; i++)
{
if (!string.IsNullOrEmpty(mainSheet.Cells["A"+i].Text))
{
lastRow =i;
}
}
listView1.Columns.Add("Party");
listView1.Columns.Add("Bill No.");
listView1.Columns.Add("Bill Date");
listView1.Columns.Add("Amount");
listView1.Columns.Add("Due Date");
listView1.View=View.Details;
for (int row = 2; row <= lastRow; row++)
{ // Row by row...
ListViewItem itm = new ListViewItem();
for (int col = 2; col < 6; col++)
{ // ... Cell by cell...
//filter the excel data by date range
if (DateTime.Parse(mainSheet.Cells[row, 5].Text) >= DateTime.Today && DateTime.Parse(mainSheet.Cells[row, 5].Text) <= DateTime.Today.AddDays(10))
{
itm.Text =mainSheet.Cells[row, 1].Text;
itm.SubItems.Add(mainSheet.Cells[row, col].Text);
}
}
if(itm.SubItems.Count>1)
{
listView1.Items.Add(itm);
}
}
}
listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
Now, when I create a listview in WPF using the code in XAML
<ListView x:Name="listView1" Height="300" Width="500" />
I don't get the properties like Columns, AutoResizeColumns etc and get errors.
So how do I do this in WPF and also how do I databind the listview with filtered excel data so that when I change the source excel file (say by a button click event) the listview gets automatically updated ?
Thanks!