我正在尝试使用户能够将新行/数据添加到双向绑定到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文件的网格有关?
答案 0 :(得分:0)
我猜想当你直接绑定到XML文件时,它只是readonly。 获取XMLDataProvider并绑定到它。然后,您可以使用RowEditEnding事件进行修改:
请点击此处了解更多信息:
How do I create a new row in WPF DataGrid when it is bound to an XmlDataProvider?