Wie binde ich eine ObservableCollection<updateData>
updateCollection
an eine DataGrid
? Ich habe mehrere Lösungen ausprobiert, aber keine scheint zu funktionieren, da Zeilen zur Sammlung hinzugefügt werden, aber nicht im Raster erscheinen. Ich habe versucht, nur an die Klasse zu binden, dann kann ich Zeilen hinzufügen, aber wenn ich versuche, sie zu bearbeiten, bekomme ich den Fehler 'EditItem' is not allowed for this view
. Das Gitter ist die folgendeBindung ObservableCollection an DataGrid
<DataGrid Name="dgv" Grid.ColumnSpan="7" AutoGenerateColumns="False" ItemsSource="{Binding updateCollection}" IsSynchronizedWithCurrentItem="True" CanUserAddRows="False">
<DataGrid.Columns>
<DataGridComboBoxColumn Header="Hour" SelectedValueBinding="{Binding Active}" ItemsSource="{StaticResource hoursList}" DisplayMemberPath="Key" SelectedValuePath="Value"/>
<DataGridComboBoxColumn Header="Origin" SelectedValueBinding="{Binding Origin}" ItemsSource="{StaticResource originList}" DisplayMemberPath="Key" SelectedValuePath="Value"/>
<DataGridTextColumn Header="P" Binding="{Binding Path=Price}"/>
<DataGridTextColumn Header="Q" Binding="{Binding Path=Quantity}"/>
</DataGrid.Columns>
Und die updateData
Klasse ist die folgende:
public class updateData
{
public string Price { get; set; }
public string Quantity { get; set; }
public string Origin { get; set; }
public string Hour { get; set; }
}
Was "DataContext" DataGrid verwendet? – ASh
Haben Sie Folgendes gesehen: http://stackoverflow.com/questions/18578254/datagrid-edition-edititem-is-not-allowed-for-this-view-when-bound-to-a-wpf-da? – Silvinus
@ASh Ich habe versucht, 'dgv.DataContext = updateCollection' zu setzen, aber es hat nichts geändert. – Hauba