将新行添加到绑定到XML文件的WPF DataGrid

时间:2015-04-15 11:35:31

标签: c# xml wpf xaml datagrid

我正在尝试使用户能够将新行/数据添加到双向绑定到XML文件的DataGrid。我可以编辑所有值,但无论我尝试过什么,网格末尾的空行都不会显示出来。

我正在尝试在XAML中实现这一点,只需要很少的代码。我不希望用户必须单击按钮来添加行(我可以完成)。

这是我的DataGrid的一个例子。它用0后面的代码更新我的XML文件

<DataGrid  Name="masterCrewGrid" CanUserAddRows="True" CanUserDeleteRows="True" DataContext="{StaticResource CrewInfo}" ItemsSource="{Binding XPath=/Names/Name}" AutoGenerateColumns="False" CellEditEnding="masterCrewGrid_CellEditEnding" >
      <DataGrid.Columns>
            <DataGridTemplateColumn Header="Active">
                 <DataGridTemplateColumn.CellTemplate>
                       <DataTemplate>
                            <CheckBox IsChecked="{Binding XPath=@isActive, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                      </DataTemplate>
                 </DataGridTemplateColumn.CellTemplate>
             </DataGridTemplateColumn>
             <DataGridTextColumn Header="Family Name" Binding="{Binding XPath=Family, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
             <DataGridTextColumn Header="First Name" Binding="{Binding XPath=First, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
             <DataGridTextColumn Header="Middle Name" Binding="{Binding XPath=Middle, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
             <DataGridTextColumn Header="Birthday" Binding="{Binding XPath=Birthday, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
             <DataGridTextColumn Header="Crew Position" Binding="{Binding XPath=CrewPosition, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
      </DataGrid.Columns>
</DataGrid>

有人可以解释为什么新行不会出现?是否与绑定到XML文件的网格有关?

1 个答案:

答案 0 :(得分:0)

我猜想当你直接绑定到XML文件时,它只是readonly。 获取XMLDataProvider并绑定到它。然后,您可以使用RowEditEnding事件进行修改:

请点击此处了解更多信息:

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