This is a migrated thread and some comments may be shown as answers.

Click event for GridViewSelectColumn checkbox

1 Answer 548 Views
GridView
This is a migrated thread and some comments may be shown as answers.
FirstName
Top achievements
Rank 1
FirstName asked on 23 Dec 2017, 05:42 PM

Hi, all. How can I catch click action for any checkbox in GridViewSelectColumn via MVVM or smth else ?

XAML markup contains only one grid with two column (first is selectable checkboxes):

<telerik:RadGridView ...
                             namespace:MySelectedItemsBindingBehavior.SelectedItems="{Binding SelectedItemsHere}"
 ...>
    <telerik:RadGridView.Columns>
        <telerik:GridViewSelectColumn CheckBoxStyle="{StaticResource CheckBoxStyle}"/>
            <telerik:GridViewDataColumn ...>
            <telerik:GridViewDataColumn.CellTemplate>
                <DataTemplate ...>
                    <StackPanel ...>
                        ...
                    </StackPanel>
                </DataTemplate>
            </telerik:GridViewDataColumn.CellTemplate>
        </telerik:GridViewDataColumn>
    </telerik:RadGridView.Columns>
</telerik:RadGridView>

P.S. Exactly click event, not the changing of underlying collection.

1 Answer, 1 is accepted

Sort by
0
Dilyan Traykov
Telerik team
answered on 27 Dec 2017, 01:43 PM
Hello,

One possible approach would be to handle the CellLoaded event of the RadGridView control, check if the loaded cell's Column property is of type GridViewSelectColumn and attach a handler for the MouseLeftButtonDown event with the handledEventsToo parameter of the AddHandler method set to True.

private void ClubsGrid_CellLoaded(object sender, CellEventArgs e)
{
    if (e.Cell.Column is GridViewSelectColumn)
    {
        e.Cell.RemoveHandler(MouseLeftButtonDownEvent, new MouseButtonEventHandler(OnClick));
        e.Cell.AddHandler(MouseLeftButtonDownEvent, new MouseButtonEventHandler(OnClick), true);
    }
}
 
private void OnClick(object sender, MouseButtonEventArgs e)
{
    var cell = sender as GridViewCell;
    e.Handled = false;
}

Please let me know whether such an approach would work for you.

Regards,
Dilyan Traykov
Progress Telerik
Want to extend the target reach of your WPF applications, leveraging iOS, Android, and UWP? Try UI for Xamarin, a suite of polished and feature-rich components for the Xamarin framework, which allow you to write beautiful native mobile apps using a single shared C# codebase.
Tags
GridView
Asked by
FirstName
Top achievements
Rank 1
Answers by
Dilyan Traykov
Telerik team
Share this question
or