DataTable
работает как словарь, а не как объект.Он не отображает ваши столбцы как свойства, но каждый DataRow
предоставляет индексатор , который можно использовать для получения значения ячейки.Поэтому вам нужно использовать синтаксис индексатора:
<RadioButton Grid.Column="0" Content="{Binding Path=[main_category_name]}" VerticalAlignment="Center" GroupName="grpMainCategory" x:Name="rdbEnableDisable" />
ОБНОВЛЕНИЕ
Еще одна вещь, которая меня беспокоит, это то, что ваше свойство MainCategoriesTable
не уведомляет об изменениях.Если он изменился после того, как все Bindings
были инициализированы, он не будет работать (в то время как DependencyProperty
будет работать, потому что он всегда уведомляет об изменениях).Чтобы это работало, ваш контекстный класс должен реализовывать интерфейс INotifyPropertyChanged
, а ваше свойство должно выглядеть так:
public DataTable MainCategoriesTable
{
get { return _dtMainCategory; }
set
{
if(value == _dtMainCategory)
{
return;
}
_dtMainCategory = value;
var h = this.PropertyChanged;
if(h != null)
{
h(this, new PropertyChangedEventArgs("MainCategoriesTable"));
}
}
}