How do I create a new row in WPF DataGrid when it is bound to an XmlDataProvider?

bluepolystyreneman picture bluepolystyreneman · Jan 26, 2009 · Viewed 31.5k times · Source

I have a project with an XmlDataProvider bound to a WPF DataGrid control. I have the bindings on the DataGrid set up as follows:

<dg:DataGrid ItemsSource="{Binding Source={StaticResource XmlData}, XPath=Root/People/Person}"
             AutoGenerateColumns="False">
    <dg:DataGrid.Columns>
        <dg:DataGridTextColumn Header="ID" Binding="{Binding XPath=ID}"/>
        <dg:DataGridTextColumn Header="Name" Binding="{Binding XPath=Name}"/>
    </dg:DataGrid.Columns>
</dg:DataGrid>

Users can edit entries using the DataGrid without any problems. What I cannot manage to accomplish is allowing the user to add a new row (i.e. a new Person) using the DataGrid. How can I allow this?

Answer

Boris Lipschitz picture Boris Lipschitz · Jul 5, 2009

Make sure that you set: CanUserAddRows="True" and that the default constructor of a bound class is available.