How to find the row on which a mouse click event occurred in radgridview

Introduction

If you are able to subscribe to a mouse click event on a radgridView, then your immediate requirement could be to find the row in which the mouse click event occurred. In this post we will see how to achieve this.

How to achieve this?

You can achieve this by querying the source of this event. In our case we will do something like this.

private void GridViewRowMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
  // Either this way

  var senderElement = e.OriginalSource as FrameworkElement;
  var parentRow = senderElement.ParentOfType<GridViewRow>();

  // or this way

  var element = e.Source as FrameworkElement;
  var row = senderElement.ParentOfType<GridViewRow>();           
}

This approach can be applied to all similar controls say RadGridView, RadTreeView etc. Now when you have found the row which the user has clicked, your immediate requirement could be to find the object associated with the row. Say for example if you have found the row and if you want to assign this to the SelectedItem property, then you cannot assign this, this is because to set a selected item, you need to find the exact object which is bound to the row. If you are trying to find the object in the row then you could achieve this like as shown below.

var tag = row as RadRowItem;
object item = tag.Item;

Delphi how to check if you have read permission on a directory

It seems to be difficult to check the read permission on a directory in Delphi 2009. Here we will see how to find the read permission in an alternate way. Continue reading

Libish Varghese Jacob

Libish Varghese JacobI am currently working as a lead engineer in one of the leading wind turbine manufacturing firm. I have wide range of interests and getting my hands dirty in technology is one among them. I use this platform primarily as my knowledge base. I also use this platform to share my experience and experiments so that it might help someone who is walking the way I already did. The suggestions expressed here are the best to my knowledge at the time of writing and this may not necessarily be the best possible solution. I would pretty much appreciate if you could comment on it to bring into my notice on what could have been done better.