EditableContentControl EditableContent property

Editors for WPF Forum

Posted 5 months ago by Ethem Acar
Version: 23.1.4
Avatar

In the docs it says:

When entering edit mode, the Content property value is copied to the EditableContent property, and the UI switches to a TextBox for editing the editable content. Note that an alternate template could be provided for the control to support an editor other than a TextBox.

Is there an example of this? Trying to figure out how I can use colorpicker instead of textbox.

Comments (1)

Answer - Posted 5 months ago by Actipro Software Support - Cleveland, OH, USA
Avatar

Hello,

The default Template for the control is a good example:

<ControlTemplate TargetType="controls:EditableContentControl">
	<Grid Background="{TemplateBinding Background}">
		<ContentPresenter x:Name="presenter" Margin="2,0" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" 
							ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}" ContentStringFormat="{TemplateBinding ContentStringFormat}">
			<ContentPresenter.Resources>
				<Style TargetType="TextBlock">
					<Setter Property="TextTrimming" Value="CharacterEllipsis" />
					<Setter Property="TextWrapping" Value="NoWrap" />
					<Setter Property="VerticalAlignment" Value="Center" />
				</Style>
			</ContentPresenter.Resources>
		</ContentPresenter>
		<TextBox x:Name="textBox" MinWidth="30" MinHeight="0" Padding="0" BorderThickness="0" FontSize="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=FontSize}" 
					Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=EditableContent, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
					TextWrapping="NoWrap" HorizontalAlignment="Left" VerticalAlignment="Center" Visibility="Collapsed" />
	</Grid>
					
	<ControlTemplate.Triggers>
		<Trigger Property="IsEditing" Value="True">
			<Setter TargetName="presenter" Property="Visibility" Value="Collapsed" />
			<Setter TargetName="textBox" Property="Visibility" Value="Visible" />
		</Trigger>
	</ControlTemplate.Triggers>
</ControlTemplate>

You can see there how the TextBox is swapped in when IsEditing=true.  In a cloned ControlTemplate, you could replace the TextBox with some other control if you wish.


Actipro Software Support

The latest build of this product (v24.1.2) was released 10 days ago, which was after the last post in this thread.

Add Comment

Please log in to a validated account to post comments.