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 セッターとゲッター

 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");

xamlに挿入します

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>

SOウィンドウが初期化されると、データグリッドには編集可能な行が1つあると予想されますが、データグリッドにはこの行が表示されず、他の行を追加できません

4

1 に答える 1

0

MSDNから

デフォルトでは、アイテムを DataGrid で直接編集できます。編集を正しくコミットおよびキャンセルできることを保証するために、DataGrid 内のオブジェクトは IEditableObject インターフェイスを実装する必要があります。または、IsReadOnly プロパティを true に設定して、DataGrid での編集を無効にすることもできます。

使用しているフレームワークのバージョンと、データ オブジェクトがIEditableObjectインターフェイスを実装しているかどうかについては述べていません。私の知る限り、これは .Net 4.0 以降でのみサポートされています。

于 2013-02-16T11:56:15.010 に答える