Вероятно, он должен быть производным от UserControl или ItemsControl (или чего-то еще в иерархии ItemsControl, например, Selector). Если вы новичок в WPF, то, вероятно, лучше всего извлечь его из UserControl, поскольку для создания хорошего пользовательского элемента управления требуется разумное владение идиомами разработки WPF, а также только API.
Вместо того, чтобы пытаться управлять областью прокрутки вручную путем создания явных элементов ScrollBar, рассмотрите возможность использования класса ScrollViewer. Если вы размещаете содержимое сетки в ScrollViewer, и оно слишком велико для доступной области отображения, ScrollViewer позаботится об отображении полос прокрутки и автоматической прокрутке содержимого.
Обратите внимание, что если вы ищете функциональность типа сетки данных, то существуют различные бесплатные, коммерческие и открытые таблицы данных WPF с открытым исходным кодом, хотя они, как правило, смещены в сторону редактирования табличных данных, а не, скажем, в Excel-подобную функциональность .