Возможно, вам повезет больше, если вы на самом деле разделите этот отраженный вызов на составляющие его части. Мне кажется, что исходный объект на самом деле будет PropertyInfo, сгенерированный
f.FieldType.GetProperty("RowIndex")
Я бы сказал, что если вы фактически объявите объект PropertyInfo для временного хранения этого объекта, вы сможете передать его в вызов GetValue, а затем уничтожить его, когда закончите.