Я провел быструю проверку «точечной» привязки в DataGrid, и она работала, как и ожидалось. Я в основном взял ваш Xaml и связал некоторые классы данных POCO. Вот код:
<data:DataGrid x:Name="dgCompanies" Grid.Row="0" AutoGenerateColumns="False">
<data:DataGrid.Columns>
<data:DataGridTemplateColumn>
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name, Mode=TwoWay}"></TextBlock>
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
<data:DataGridTemplateColumn>
<data:DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<TextBlock Text="{Binding CompanyScope.Scope}"></TextBlock>
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
</data:DataGrid.Columns>
</data:DataGrid>
Классы данных:
public class CompanyScope
{
public string Scope { get; set; }
}
public class Company
{
public string Name { get; set; }
public CompanyScope CompanyScope { get; set; }
}
И, наконец, код за конструктором:
ObservableCollection<Company> companies = new ObservableCollection<Company>
{
new Company { Name="Company One", CompanyScope=new CompanyScope { Scope="Some Scope" }},
new Company { Name="Company Two", CompanyScope=new CompanyScope { Scope="Some Other Scope" }},
new Company { Name="Company Three", CompanyScope=new CompanyScope { Scope="More Scope" }}
};
dgCompanies.ItemsSource = companies;
Я получил ожидаемый результат в 2 столбцах таблицы: один показывает название компании, а другой - ее область. Вы уверены, что ваши объекты Scope также загружены - возможно, вы загрузили компании, но не их области.