Наследование стилей WPF DataGrid в пользовательском шаблоне CellTemplate - PullRequest
6 голосов
/ 15 марта 2012

Я хочу иметь пользовательский тип столбца в сетке данных WPF, частью которого будет текстовое поле для ввода данных пользователем.К сожалению, кажется, что он не наследует внешний вид самой сетки данных - он не показывает чередующийся цвет, когда строка, выбранная или отредактированная, рассматриваемая ячейка не подсвечивает одинаково, и так далее.

           <DataGridTemplateColumn Header="Name" >
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate >
                        <TextBox Text="{Binding DisplayName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" IsReadOnly="False" BorderThickness="0" />                          
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

Похоже, стиль текстового поля по умолчанию переопределяет стиль таблицы данных;Есть ли способ просто использовать стиль DataGrid?Конечно, я мог бы оформить текстовое поле так, чтобы имитировать сетку данных, но если я хочу добавить другие элементы управления, мне придется сделать это также для каждого элемента.Если я пойду по этому маршруту, как бы я изменил стиль, основанный на свойствах решетки данных из шаблона ячейки? - например, IsSelected.

1 Ответ

0 голосов
/ 06 апреля 2014

Пожалуйста, измените свой XAML, чтобы добавить следующее к определению вашего текстового поля:

BorderThickness="0"      
Background="{Binding RelativeSource={RelativeSource  AncestorType=DataGridRow}, Path=Background}"

Это позволит Textbox наследовать ваше свойство фоновой сетки данных.

...