2013-02-16 3 views
0

У меня проблема с WpfDataGrid. Я создал контроль и этот контроль открыть окноwpf datagrid не редактируется

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

окна DataEntry содержит TextBox и DataGrid которые показывающие, как нередактируемые.

Я прочитал пост, который предполагает для вставки:

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;   

.... йоту и присваивателя

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 I insert

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 Я ожидаю, что когда окна инициализровать DataGrid имеет 1 ряд редактируемые но DataGrid не представляет эту строку, и я не могу добавить другой ряд

+1

Что вы хотите сказать? Вы хотите сделать «DataGrid» доступным для редактирования? Что вы пробовали? Описывает ли документа, что поддерживает редактирование? –

+0

в начале пишу этот код wb = new DataEntry (b, Connectionstring); ElementHost.EnableModelessKeyboardInterop (wb); wb.Show(); в форме окна и он работает. но это всего лишь тест. Для версии релиза мне нужно вставить ее в wpf-окно, и когда я это сделаю, datagrid станет недоступным для редактирования – user2078205

ответ

0

От MSDN

По default, вы можете редактировать элементы непосредственно в DataGrid. Чтобы гарантировать, что редактирование может быть выполнено и отменено правильно, объекты в DataGrid должны реализовать интерфейс IEditableObject. Кроме того, вы можете установить для свойства IsReadOnly значение true, чтобы отключить редактирование в DataGrid.

Вы не указали, какую версию используемого фреймворка вы используете и реализуете ли ваши объекты данных интерфейс IEditableObject. Насколько мне известно, это поддерживается только в .Net 4.0 и выше.

+0

Я использую .NET 4.0 Я пытаюсь реализовать IEditableObject, но у меня нет результата – user2078205

+0

Вы прочитали статью MSDN, связанную с ? Вы пытались подписаться на различные события, такие как * BeginEditCommand *? Имеет ли эффект F2 эффект? – Blachshma

+0

Я добавляю код в свой вопрос – user2078205