I would suggest using an item view model as a wrapper for the objects that you wish to display. The objects could implement an interface that defines a method to display the data. Then bind a property in the view model to the items display in the view. This property would call the model’s display method in its getter. Something like.
public interface IDisplayItem
{
string GetDisplayString();
..........................
}
public class ItemViewModel
{
private readonly IDisplayItem item;
public ItemViewModel(IDisplayItem obj)
{
item = obj;
}
public string ItemDisplay
{
get
{
return item.GetDisplayString();
}
}
....................................
}
}
You can then change the items collection as needed without changing the bindings in the view.