WPF中可编辑的数据网格

9
我有一个程序,需要用户在DataGrid中输入数据。我原以为只需设置“CanUserAddRows”即可让用户添加新行,但似乎这不够用。

是否还有其他定义需要我添加才能使其正常工作?我的DataGrid中包含ComboBoxes和TextBoxes等普通控件。

目前我所拥有的代码如下:

<dg:DataGrid Name="GridFournisseur" ItemsSource="{Binding}" 
     Margin="423,41,23.5,0" Height="193" VerticalAlignment="Top" 
     CanUserAddRows="True" CanUserDeleteRows="True" IsTabStop="True" RowHeight="12"                         SelectionUnit="CellOrRowHeader">

    <dg:DataGrid.Columns>

        <dg:DataGridComboBoxColumn Header="Fournisseur" Width="*" MinWidth="150"                                                
                                       IsReadOnly="False" />

        <dg:DataGridTextColumn Header="Prix" Width="SizeToHeader" MinWidth="50"
                                       Binding="{Binding Categorie}" 
                                       IsReadOnly="False"/>
        <dg:DataGridTextColumn Header="Délai" Width="SizeToHeader" MinWidth="50"
                                       Binding="{Binding NoPiece}" 
                                       IsReadOnly="False"/>
    </dg:DataGrid.Columns>
</dg:DataGrid>

我有一个数据网格,想要编辑它的内容,但一开始它是空的。


你的“ItemsSource”是否设置为ObservableCollection<T>? - Taylor Leese
目前,我没有ItemSource(可能是问题所在...) 在这个程序中,通常我会将itemSource放置为List(Of Something),但如果需要放置其他东西,那么当然可以。 - David Brunelle
也许我做错了什么。我的想法是在普通的Windows窗体应用程序中实现相同的功能,即在数据网格中始终可见一个“新行”,以便我可以添加数据。我还可能需要删除一行。 - David Brunelle
2个回答

7
这可能是许多问题中的一个。请查看这篇文章
问题很可能是您绑定到不支持添加项目的集合视图上。我认为网格可能期望实现IEditableCollectionViewIBindingList的集合视图,这些接口支持添加项目。

1

CanUserAddRows 是正确的属性。也许可以分享一些示例代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接