Добавление контролов на DataGrid в WPF

При необходимости использовать в ячейке DataGridполя, отличного от текстового, графического в нее можно поместить любой пользовательский контрол. Для этого в ресурсах таблицы необходимо создать шаблоны для необходимых контролов размещаемых в столбце и выставить тип столбца как DataGridTemplateColumn
<DataGrid>
<!— В ресурсах описываем контрол, который будем размещать в столбце-->

<DataGrid.Resources>
<DataTemplate x:Key="ErpOrganisationTemplate">
	<Grid>
	<Grid.ColumnDefinitions>
		<ColumnDefinition Width="*"/>
		<ColumnDefinition Width="Auto"/>
	</Grid.ColumnDefinitions>
							
	<TextBlockGrid.Column="0" Text="{BindingOrganisationName}"MinWidth="200"/>
	<ButtonGrid.Column="1" Content="..." Command="{BindingSelectOrgCommand}"/>
	</Grid>
	</DataTemplate>
<DataGrid.Columns>
	<DataGridTemplateColumn Header="Организация"
	CellTemplate="{StaticResourceResourceKey=ErpOrganisationTemplate}"
		CellEditingTemplate="{StaticResourceResourceKey=ErpOrganisationTemplate}"
											Width="*"/>
	</DataGrid.Columns>
</DataGrid.Resources>

Свойство CellTemplateхранит тот контрол, который отвечает за просмотр элемента. Если же по двойному клику по ячейке необходимо отображать специальный контрол для редактирования, то его необходимо прописать в свойство CellEditingTemplate.
--
автор: Любимов Сергей

Last edited Jan 19, 2012 at 5:05 AM by basph, version 7

Comments

No comments yet.