I bind ObservableCollection to ListView and I get {NewItemPlaceholder} line at the end. How can I hide or remove that line?
<TreeView ItemsSource="{Binding MyDataToDisplay}">
Collection looks like:
ObservableCollection<MyElement> MyDataToDisplay
Just set an ItemTemplate in the XAML for the ListView (in my example a TreeView, where the same failure happens), and bind it to a filter converter. This could look like this:
Now you have to add a Filter-Converter-Class like this:
And don't forget to map this Filterclass a static resource in your XAML with something like this:
This is caused by a DataGrid beeing bound to the same datasource, that is not "IsReadOnly=True" (writable). If this still fits your requirements, you can also try to make the DataGrid readonly or to bind to a different datasource.
Old question but just came across this problem. I have a treeview & datagrid bound to the same datasource; however making the datagrid IsReadOnly=true wasn't an option because I need to be able to edit the datagrid. I found that setting CanUserAddRows=false fixed the issue and still allowed me to edit the Datagrid.
Like alot of people, I had the same issues but after some thinking, it occured to me that I could just create a bool property in the ViewModel and bind it to the DataGrid CanUserAddRows Property like below. Then I can make the property true or false as needed:
This is easier and works very well. Hope it helps you.
Suddenly I solved my problem. The problem was that on the same window I had a DataGrid binded to the same collection. I think that I had to make the DataGrid readonly to eliminate that row in the TreeView. However the DataGrid was just for testing purpose so the problem is gone.