0

我有一个问题WpfDataGrid。我创建了一个控件,这个控件打开一个窗口

var wb = new DataEntry(b, Connectionstring);
wb.Show();

该窗口DataEntry包含TextBoxDataGrid显示为不可编辑的一个。

我读了一篇建议插入的帖子:

ElementHost.EnableModelessKeyboardInterop(wb);wb.Show();

我试过了,现在TextBox运行良好,但DataGrid仍然不可编辑。

谢谢你的支持。

我添加了我使用的代码

DataEntry class 

private ObservableCollection<RigaBarcode> _righeBarcode = new ObservableCollection<RigaBarcode>();


//so I create the customer object

  private class RigaBarcode : INotifyPropertyChanged 
        {
            public RigaBarcode(string barcode, string coordinate)
            {
                Barcode = barcode;
                Coordinate = coordinate;

            }

            private string _barcode;
            private string _coordinate;         

.... whit setter 和 getter

 public event PropertyChangedEventHandler PropertyChanged;

            protected virtual void OnPropertyChanged(string propertyName)
            {
                PropertyChangedEventHandler handler = PropertyChanged;
                if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
            }

我在这个集合中添加和元素

_righeBarcode.Add(new RigaBarcode("1", "2");

在我插入的xml中

DataGrid ItemsSource="{Binding .}" Name="Fustelle" Margin="10,23,10,10" Grid.Row="8" Grid.ColumnSpan="2" IsReadOnly="False" AutoGenerateColumns="False">
            DataGrid.Columns>
                    DataGridTextColumn  Header="BarCode" Width="90" Binding="{Binding Barcode}"/>
                    DataGridTextColumn  Header="Posizione" Width="90" Binding="{Binding Coordinate}"/>
                /DataGrid.Columns>
            /DataGrid>

所以我希望在初始化窗口时,datagrid 有 1 行可编辑,但 datagrid 不显示这一行,我无法添加其他行

4

1 回答 1

0

来自MSDN

默认情况下,您可以直接在 DataGrid 中编辑项目。为了保证可以正确提交和取消编辑,DataGrid 中的对象必须实现 IEditableObject 接口。或者,您可以将 IsReadOnly 属性设置为 true 以禁用在 DataGrid 中的编辑。

您没有说明您正在使用哪个版本的框架以及您的数据对象是否实现了IEditableObject接口。据我所知,这仅在 .Net 4.0 及更高版本中受支持。

于 2013-02-16T11:56:15.010 回答