I think that you want ListView control to populate your custom Device object, but not default ListViewItem object. You can override ListView.GetContainerForItemOverride and ListView.IsItemItsOwnContainer methods.
Code Snippet
protected override bool IsItemItsOwnContainerOverride(object item)
{
return (item is Device);
}
protected override DependencyObject GetContainerForItemOverride()
{
return new Device();
}
Best Regards,
Wei Zhou