2017-02-11 10 views
0

Я использую RadGridView. Я ограничил таблицу сеткой, и я создал GridViewCheckBoxColumn и связал ей столбец bool. Мне нужно запустить метод, когда один из флажков будет запущен в этом столбце, но ни один из связанных событий не будет уволен, установив флажок. (Обратите внимание, что в столбце нет событий щелчка и других событий, таких как MouseLeftButtonDown ., PropertyChanged, TextInput не уволен проверки/сняв флажок столбец создается код ниже:пожара события щелчка для каждого флажка в GridViewCheckBoxColumn

Telerik.Windows.Controls.GridViewColumn newColumn; 
if (columnInfo.typeOfColumn != null && columnInfo.typeOfColumn == typeof(bool)) 
{ 
    newColumn = new GridViewCheckBoxColumn(); 
    ((GridViewCheckBoxColumn)newColumn).DataMemberBinding =new Binding(columnInfo.id); 
    ((GridViewCheckBoxColumn)newColumn).EditTriggers= GridViewEditTriggers.CellClick; 
    ((GridViewCheckBoxColumn)newColumn).TextAlignment= TextAlignment.Center; 
    ((GridViewCheckBoxColumn) newColumn).AutoSelectOnEdit = true; 
} 
+0

Что такое код, связанный с _columnInfo.id_ property? Поддерживает ли этот класс интерфейс INotifyPropertyChanged? – Ron

+0

@Ramin - это класс, который сохраняет свойства столбцов. этот класс является собственным и не имеет никакого эффекта. Я создаю столбцы на основе списка этого класса, и я найду значение columnType и других столбцов на основе этого класса для каждого столбца. – all

+0

Не легко ли отслеживать свойство вместо пользовательского интерфейса? В ячейках нет реальных флажков, все нарисовано – Spawn

ответ

0

я не использовал RadGridView раньше, но вы проверили события на самом табличном не просто столбец? Если не проверить этот путь: http://docs.telerik.com/devtools/wpf/controls/radgridview/events/overview особенно раздел событий событий.

+0

Я использовал события CellValidating, CellValidated и CurrentCellChanged на radGridView. они работают на конкретных условиях. например, мне нужно немедленно зафиксировать изменение флажка, но ни одно из вышеперечисленных событий не может этого сделать. – all

+0

mmmm вы можете проверить события редактирования: http: //docs.telerik.com/devtools/wpf/controls/radgridview/events/edit –

0

Поскольку мы говорим о CellEditElement, это действительно CheckBox там, так что мы можем сделать что-то вроде этого:

код за

private void OnChecked(object sender, RoutedEventArgs e) 
{ 

} 

private void OnUnchecked(object sender, RoutedEventArgs e) 
{ 

} 

В XAML:

<telerik:RadGridView ItemsSource="{Binding Items}" AutoGeneratingColumn="RadGridView_AutoGeneratingColumn"> 
    <telerik:RadGridView.Resources> 
     <Style TargetType="CheckBox"> 
      <EventSetter Event="Checked" Handler="OnChecked"/> 
      <EventSetter Event="Unchecked" Handler="OnUnchecked"/> 
     </Style> 
    </telerik:RadGridView.Resources> 
</telerik:RadGridView> 

Мы только должны помнить , то фактическое значение будет находиться в datatable после выхода из ячейки.

 Смежные вопросы

  • Нет связанных вопросов^_^