Я думаю, вам нужно прикрепленное свойство здесь.Попробуйте изменить
DependencyProperty.Register
на
DependencyProperty.RegisterAttached
.
Также typeof(object) should be typeof(int)
.
ОБНОВЛЕНИЕ
Да, вышеизложенное решит вашу проблему, но я думаю, что вам не нужно здесь присоединенное свойство, поскольку ваш класс расширяет класс DataGrid
.Обычное свойство зависимости - это все, что вам нужно.Так что сохраните свой существующий код и измените
typeof(object),typeof(DataGrid),
на
typeof(int),typeof(CustomDependencyProperty),
, и в вашем xaml вы можете просто использовать этот расширенный класс напрямую, что-то вроде этого,
<local:CustomDependencyProperty SelectedColumnIndex="{Binding Index,Mode=TwoWay}">
Возможно, вы захотите изменить имя «CustomDependencyProperty» на что-то более значимое, например ExtendedDataGrid
.
Поэтому я считаю, что у вас обычно есть два способа создания привязываемого свойства, либо путем расширенияуправление и создание обычного свойства зависимостей, либо путем создания статического класса с присоединенным свойством.
Надеюсь, это поможет.:)