Я хотел бы включить редактирование на месте для ячеек в моем GridControl. Я установил свойство AllowEditing в TableView и Columns, но данные в моих ячейках до сих пор не могут быть отредактированы после двойного щелчка по ячейке. В контекстном меню включена только «копия». Мне не удалось найти решение.Включить редактирование на месте в ячейке в GridControl
NavigationStyle недвижимость в TableView установлен в "Cell"
Мой XAML.
<dx:PLinqInstantFeedbackDataSource x:Name="PLinqInstantFeedbackDataSource" ListSource="{Binding Path=TestCollectionSource}" DefaultSorting="Property1 ASC"/>
<dxg:GridControl EnableSmartColumnsGeneration="True" ItemsSource="{Binding Path=Data, ElementName=PLinqInstantFeedbackDataSource}" SelectionMode="Cell" IsManipulationEnabled="True">
<dxg:GridControl.View>
<dxg:TableView AllowEditing="True" NavigationStyle="Cell" AllowFilterEditor="True" AlternateRowBackground="CornflowerBlue" ShowAutoFilterRow="True" />
</dxg:GridControl.View>
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Property1" AllowEditing="True" ReadOnly="False" />
<dxg:GridColumn FieldName="Number" AllowEditing="True" ReadOnly="False" />
</dxg:GridControl.Columns>
</dxg:GridControl>
EDIT
ViewModel и ListSource класс
public class MainWindowViewModel : ObservableObject
{
public MainWindowViewModel()
{
}
private BindingList<TestClass> testCollection;
public BindingList<TestClass> TestCollection
{
get
{
var result = this.testCollection;
if (null == result)
{
lock(this)
{
result = this.testCollection;
if (null == result)
{
result = new BindingList<TestClass>();
for (int i = 0; i < 1000000; i++)
{
result.Add(new TestClass() { Property1 = "test" + i, Number = i % 20 });
}
this.testCollection = result;
}
}
}
return result;
}
}
public IListSource TestCollectionSource
{
get { return new ListSource(()=> this.TestCollection); }
}
}
public class ListSource : IListSource
{
public readonly Func<IList> innerListProvider;
public ListSource(Func<IList> innerListProvider)
{
this.innerListProvider = innerListProvider;
}
public IList GetList()
{
return this.innerListProvider();
}
public bool ContainsListCollection
{
get { return false; }
}
}
public class TestClass : ObservableObject
{
private string property1;
public string Property1
{
get { return this.property1; }
set
{
this.property1 = value;
RaisePropertyChanged(() => this.Property1);
}
}
private int number;
public int Number
{
get { return this.number; }
set
{
this.number = value;
RaisePropertyChanged(() => this.Number);
}
}
}
Есть ли GridControl пользовательский DataGrid? –
@AmitRaz GridControl - это DataGrid из библиотеки wpf devexpress. –
Что такое 'TestCollectioSource'? Можете ли вы предоставить код? – nempoBu4