Не существует единого интерфейса или базового класса, который все они наследуют (который также не унаследован другими классами), поэтому простой ответ - нет.
Я действительно удивляюсь, почему это проблема. Что вы хотите сделать в своем классе IntegerFunction, который может быть сделан только для целых чисел?
Пустая привязка без пути привязывается непосредственно к DataContext, поэтому
{Binding}
достаточно, чтобы она работала! Ваш пример:
<Button
x:Name="btnMain"
Command="infra:ApplicationCommands.MyCommand"
CommandParameter="{Binding}"
/>
<Button
x:Name="btnMain"
Command="infra:ApplicationCommands.MyCommand"
CommandParameter="{Binding}"
/>
, пока кнопка находится в визуальном дереве элемента с DataContext