If you want to bind to ElementLayer.Children, I think the following code should work:
xmlns:local="clr-namespace:Sprint20"
xmlns:esri="http://schemas.esri.com/arcgis/client/2009">
<Grid x:Name="LayoutRoot" Background="White">
<Grid.Resources>
<esri:Envelope x:Key="MyEnvelope" XMin="-117" YMin="34" XMax="-117" YMax="34"/>
<local:MyUIElements x:Key="MyElementLayerChildren">
<!--Clickable button-->
<Button x:Name="RedlandsButton" Width="20" Height="20" Content="X"
esri:ElementLayer.Envelope="{StaticResource MyEnvelope}"
VerticalAlignment="Center" HorizontalAlignment="Center" />
<!--Arrow pointing at Copenhagen from the right-->
<TextBlock Text="<=" HorizontalAlignment="Right"
FontSize="15" Foreground="Blue" FontWeight="Bold"
esri:ElementLayer.Envelope="12.5698,55.6765,12.5698,55.6765" />
<!--Arrow pointing at Copenhagen from the left-->
<TextBlock Text="=>" HorizontalAlignment="Left"
FontSize="15" Foreground="Blue" FontWeight="Bold"
esri:ElementLayer.Envelope="12.5698,55.6765,12.5698,55.6765" />
<!-- Red box - No size specified. Envelope guides the size -->
<Rectangle Fill="Red" esri:ElementLayer.Envelope="0,0,10,10" />
<!--Editable textbox-->
<TextBox Width="100" Height="20" esri:ElementLayer.Envelope="40,0,40,0"
Text="Editable text" HorizontalAlignment="Right" VerticalAlignment="Bottom" />
</local:MyUIElements>
</Grid.Resources>
<esri:Map x:Name="MyMap">
<esri:ArcGISTiledMapServiceLayer ID="StreetMapLayer"
Url="http://services.arcgisonline.com/ArcGIS/rest/services/NGS_Topo_US_2D/MapServer"/>
<esri:ElementLayer Children="{Binding Source={StaticResource MyElementLayerChildren}}"/>
</esri:Map>
</Grid>
This local class will allow you to create an instance of ObservableCollection type.
public class MyUIElements : ObservableCollection<UIElement>
{
public MyUIElements() { }
}