WPF: относительно привязки внутри DataGridTextColumns - PullRequest
0 голосов
/ 24 августа 2010

Сегодня я заметил странное поведение, связывающее заголовок DataGridColumn с ViewModel.

Следующее связывание работает отлично (имя DataGrid - MyGrid):

<DataGridTextColumn Binding="{Binding Name}"  Width="*" CanUserReorder="False" CanUserResize="False" IsReadOnly="True">
                                <DataGridTextColumn.HeaderTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding ElementName=MyGrid, Path=DataContext.MyDeviceViewModel.CategoryHeader}"/>
                                    </DataTemplate>
                                </DataGridTextColumn.HeaderTemplate>
 </DataGridTextColumn>

Принимая во внимание, чтоследующее не работает (жалуется, что MyGrid не может быть найден):

<DataGridTextColumn Binding="{Binding Name}"  Width="*" CanUserReorder="False" CanUserResize="False" IsReadOnly="True">
    <DataGridTextColumn.Header>
        <TextBlock Text="{Binding ElementName=MyGrid, Path=DataContext.MyDeviceViewModel.CategoryHeader}"/>
    </DataGridTextColumn.Header>
</DataGridTextColumn>

В чем разница между привязкой к модели представления в шаблоне или непосредственно в UIElement?

1 Ответ

0 голосов
/ 24 августа 2010

Это должно работать

<TextBlock Text="{Binding MyDeviceViewModel.CategoryHeader}"/>

Вам не нужно ссылаться на свойство ElementName, когда вы находитесь в том же элементе управления

НТН

...