Adding it directly to the ListView in your App isn't necessarily the "WPF-way". Consider this:
public class BindableListViewModel
{
public IList AllObjectsToDisplay;
public ICommand AddNewItemToList;
public BindableListViewModel()
{
AllObjectsToDisplay = new ObservableList();
AddNewItemToList = new RelayCommand(AddNewItem(), CanAddNewItem());
}
public bool CanAddNewItem()
{
//logic that determines IF you are allowed to add
//For now, i'll just say that we can alway add.
return true;
}
public void AddNewItem()
{
AllObjectsToDisplay.Add(new TypeOfObjectToDisplay());
}
}
Then, in XAML all that we need to do is bind the ItemsSource of our ListView to our AllObjectsToDisplay list. This allows us to separate the dependency of adding objects directly to our ListView; we can us WPF's strength of Data Binding to remove the direct dependency on HOW we add businesss objects to our UI container we display them in -- a very useful practice!