Theoretically this should be fairly easy to achieve based purely on the use of the property you have bound to for
IsSelected
. What I would do is include a check like this:
public bool IsSelected
{
get { return isSelected; }
set
{
if (isSelected || isSelected != value) return;
isSelected = value;
OnChanged("IsSelected");
}
}
By including the check to see if isSelected is already true for this row, we can ensure that we don't try to update the row if we have already set it.