2017-02-11 39 views
0

我正在使用RadGridView。 我已經爲網格綁定了一個表格,並創建了一個GridViewCheckBoxColumn並綁定了一個bool列。 我需要在此列中的某個複選框被觸發時激發一個方法,但是通過選中該複選框不會觸發任何相關事件(請注意GridViewCheckBoxColumn列中沒有任何點擊事件,並且其他事件如MouseLeftButtonDown觸發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_屬性相關的代碼是什麼?該類是否實現INotifyPropertyChanged接口? – Ron

+0

@Ramin - 這是保存列的屬性的類。這個班是屬於自己的,沒有任何影響。我根據這個類的列表創建列,我會根據每個列的這個類找到列的columnType和其他設置。 – all

+0

監視屬性而不是UI很容易嗎?在單元格中沒有真正的複選框,所有東西都被繪製出來 – Spawn

回答

0

我沒有使用過RadGridView但你檢查事件之前在網格視圖本身並不:,PropertyChangedTextInput沒有被選中/取消選中該複選框 發射塔是由下面的代碼創建只是列?如果不檢查此路徑: http://docs.telerik.com/devtools/wpf/controls/radgridview/events/overview特別選擇事件部分。

+0

我在radGridView上使用了CellValidating,CellValidated和CurrentCellChanged事件。他們在特定的條件下工作。例如,我需要立即捕獲複選框更改,但上述任何事件都無法做到這一點。 – 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> 

我們不僅要記住,從單元退出後,實際值將在數據表中。

相關問題