Hello!

I am trying to bind an image in a custom textbox control that I have created. The idea is to create a textbox which can have rounded corners, a custom watermark, and an icon at the left end, similar to the "magnifying glass" icon inside the "spotlight" search field textbox on a Mac. Here is the XAML for my default template at present:

HTML Code:
<Grid>
                        <Border CornerRadius="{TemplateBinding CornerRadius}" BorderBrush="{TemplateBinding BorderBrush}" 
                                BorderThickness="{TemplateBinding BorderThickness}">
                            <Grid>
                                <Border Name="opMask" CornerRadius="{TemplateBinding CornerRadius}" Background="Black"/>
                                <Grid Background="{TemplateBinding Background}">
                                    <Grid.Resources>
                                        <BooleanToVisibilityConverter x:Key="BoolToVis"/>
                                    </Grid.Resources>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="*"/>
                                    </Grid.ColumnDefinitions>
                                    <Grid.OpacityMask>
                                        <VisualBrush Visual="{Binding ElementName=opMask}"/>
                                    </Grid.OpacityMask>
                                    <Image Grid.Column="0" Source="{TemplateBinding Icon}"/>
                                    <TextBlock Grid.Column="1" Background="Transparent" Text="{TemplateBinding Watermark}" FontStyle="Italic"
                                           Visibility="{Binding ElementName=userInput,Path=Text.IsEmpty,Converter={StaticResource BoolToVis}}"
                                           Foreground="{TemplateBinding WatermarkColor}" Margin="{TemplateBinding WatermarkMargin}"
                                           Opacity="{TemplateBinding WatermarkOpacity}"/>
                                    <TextBox Grid.Column="1"  x:Name="userInput" Text="{TemplateBinding Text}" Background="Transparent"
                                         BorderBrush="Transparent"/>
                                </Grid>
                            </Grid>
                        </Border>
                    </Grid>
I left out the <style> and <setter> tags for brevity, as I felt they are fairly self-explanatory. I can provide them if necessary. I also don't believe the code-behind is terribly important to post here, as all that is currently implemented is dependency properties, such as "Watermark", "WatermarkColor", etc. For reference, the "Icon" dependency property is of type String at the moment, but I have tried defining it as Image with no luck.

I have also tried various versions of the following:

HTML Code:
<Image Grid.Column="0">
     <BitmapImage Source="{TemplateBinding Icon}"/>
</Image>
No cigar. What am I doing wrong here?

Thanks so much for any help! (Btw, everything works great except for the image; I can successfully round off the ends of the textbox and add custom watermark text, color, and opacity.)