如何在绑定到XmlDataProvider时在WPF DataGrid中创建新行?

blu*_*man 13 c# wpf xmldataprovider wpftoolkit

我有一个项目与XmlDataProvider绑定到WPF DataGrid控件.我在DataGrid上的绑定设置如下:

<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>
Run Code Online (Sandbox Code Playgroud)

用户可以使用DataGrid编辑条目而不会出现任何问题.我无法实现的是允许用户使用DataGrid添加新行(即新Person).我怎么能允许这个?

Bor*_*itz 19

确保设置:CanUserAddRows="True"并且绑定类的默认构造函数可用.

  • 高超!我永远不会意识到默认构造函数是必要的 (5认同)
  • 你能详细说明你对默认构造函数的意思吗?你如何使用XmlDataSource做到这一点? (2认同)

小智 0

您是否尝试过在 DataGrid 上设置 CanUserAddRows="True" ?

  • 我今天遇到了同样的问题。我已明确设置 CanUserAddRows = true,但正如我从“立即窗口”中发现的那样,它立即变为 false。原因是绑定类没有默认构造函数。添加默认构造函数后,我在末尾得到了新行。 (7认同)