2015-04-15 3 views
0

Я пытаюсь включить пользователя для добавления новой строки/данных в DataGrid, привязанный к XML-файлу. Я могу редактировать все значения, но независимо от того, что я пробовал, пустая строка в конце сетки просто не появится.Добавить новую строку в WPF DataGrid, привязанную к XML-файлу

Я пытаюсь выполнить это в основном в XAML с минимальным кодом. Я не хочу, чтобы пользователь должен был нажать кнопку, чтобы добавить строку (что я могу выполнить).

Вот пример моего DataGrid. Он обновляет мой XML-файл с помощью 0 кода за

<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 [email protected], 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

Я бы предположил, что когда вы привязываетесь непосредственно к XML-файлу, он доступен только для чтения. Возьмите XMLDataProvider и привяжите его. После этого вы можете изменить с RowEditEnding Событие:

Посмотрите здесь для получения дополнительной информации:

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

Смежные вопросы