title: Binding errors in execution time
body: <p>I'm trying to eliminate all my runtime binding errors to speed up my application, but I have some errors that are giving me trouble and I'm not able to solve. 
  My main problems reside in an user control that displays 3D content.
  I show them in a piece of code:</p>
  
  <pre><code>&lt;Viewport3D xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
          x:Name="viewport" ClipToBounds="False" IsHitTestVisible="False"&gt;
  &lt;Viewport3D.Camera&gt;
      &lt;PerspectiveCamera FieldOfView="45" NearPlaneDistance="0.125" FarPlaneDistance="Infinity" Position="-176.298724337988,214.871512878159,289.862943629443" LookDirection="0.469846310392954,-0.342020143325669,-0.813797681349374" UpDirection="0.171010071662834,0.939692620785908,-0.296198132726024"/&gt;
  &lt;/Viewport3D.Camera&gt;
      &lt;ModelVisual3D&gt;
      &lt;ModelVisual3D.Content&gt;                    
          &lt;Model3DGroup&gt;
              &lt;Model3DGroup.Transform&gt;
                  &lt;Transform3DGroup&gt;
                      &lt;ScaleTransform3D ScaleZ="{Binding CurrentScale}" ScaleY="1" ScaleX="1"/&gt;
                      &lt;RotateTransform3D&gt;
                          &lt;RotateTransform3D.Rotation&gt;
                              &lt;AxisAngleRotation3D Axis="0,-1,0" Angle="{Binding CurrentAngle}"/&gt;
                          &lt;/RotateTransform3D.Rotation&gt;
                      &lt;/RotateTransform3D&gt;
                      &lt;MatrixTransform3D Matrix="1,1,-1,0,1,1,-3,0,0,-1,3,0,0,48,32,1"/&gt;
                  &lt;/Transform3DGroup&gt;
              &lt;/Model3DGroup.Transform&gt;
              &lt;GeometryModel3D x:Name="Box02"&gt;
                  &lt;GeometryModel3D.Geometry&gt;
                      &lt;MeshGeometry3D Positions="1 1 1 "/&gt;
                  &lt;/GeometryModel3D.Geometry&gt;
                  &lt;GeometryModel3D.Material&gt;
                      &lt;DiffuseMaterial Brush="{Binding CurrentColor}"/&gt;
                  &lt;/GeometryModel3D.Material&gt;
              &lt;/GeometryModel3D&gt;
              &lt;Model3DGroup&gt;
                  &lt;DirectionalLight Direction="{Binding CurrentLight}" Color="#FFFFFF" x:Name="light"/&gt;
              &lt;/Model3DGroup&gt;
          &lt;/Model3DGroup&gt;
      &lt;/ModelVisual3D.Content&gt;                               
  &lt;/ModelVisual3D&gt;
  &lt;/Viewport3D&gt;
  </code></pre>
  
  <p>My bindings are the following, I have got the types in the MSDN (attached at the bindings)
  <a href="https://msdn.microsoft.com/en-us/library/system.windows.media.media3d.directionallight.direction(v=vs.110).aspx" rel="nofollow noreferrer">https://msdn.microsoft.com/en-us/library/system.windows.media.media3d.directionallight.direction(v=vs.110).aspx</a>
  Type: System.Windows.Media.Media3D.Vector3D</p>
  
  <pre><code>public System.Windows.Media.Media3D.Vector3D CurrentLight
  {
      get { return this.currentLight; }
      set
      {
          this.currentLight = value;
          this.OnPropertyChanged("CurrentLight");
      }
  }
  protected System.Windows.Media.Media3D.Vector3D currentLight;
  </code></pre>
  
  <p><a href="https://msdn.microsoft.com/en-us/library/system.windows.media.media3d.scaletransform3d.scalez(v=vs.110).aspx" rel="nofollow noreferrer">https://msdn.microsoft.com/en-us/library/system.windows.media.media3d.scaletransform3d.scalez(v=vs.110).aspx</a>
  Type: System.Double</p>
  
  <pre><code>public double CurrentScale
  {
      get { return this.currentScale; }
      set
      {
          this.currentScale = value;
          this.OnPropertyChanged("CurrentScale");
      }
  }
  protected double currentScale;
  </code></pre>
  
  <p><a href="https://msdn.microsoft.com/en-us/library/system.windows.media.media3d.axisanglerotation3d.angle(v=vs.110).aspx" rel="nofollow noreferrer">https://msdn.microsoft.com/en-us/library/system.windows.media.media3d.axisanglerotation3d.angle(v=vs.110).aspx</a>
  Type: System.Double</p>
  
  <pre><code>public double CurrentAngle
  {
      get { return this.currentAngle; }
      set
      {
          this.currentAngle = value;
          this.OnPropertyChanged("CurrentAngle");
      }
  }
  protected double currentAngle;
  </code></pre>
  
  <p><a href="https://msdn.microsoft.com/en-us/library/system.windows.media.media3d.diffusematerial.brush(v=vs.110).aspx" rel="nofollow noreferrer">https://msdn.microsoft.com/en-us/library/system.windows.media.media3d.diffusematerial.brush(v=vs.110).aspx</a>
  Type: System.Windows.Media.Brush</p>
  
  <pre><code>public System.Windows.Media.Brush CurrentColor
  {
      get { return this.currentColor; }
      set
      {
          this.currentColor = value;
          this.OnPropertyChanged("CurrentColor");
      }
  }
  protected System.Windows.Media.Brush currentColor;
  </code></pre>
  
  <p>Although the bindings work correctly the following messages appear at runtime:</p>
  
  <pre><code>System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=CurrentScale; DataItem=null; target element is 'ScaleTransform3D' (HashCode=27183531); target property is 'ScaleZ' (type 'Double')
  System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=CurrentAngle; DataItem=null; target element is 'AxisAngleRotation3D' (HashCode=2594575); target property is 'Angle' (type 'Double')
  System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=CurrentColor; DataItem=null; target element is 'DiffuseMaterial' (HashCode=7565331); target property is 'Brush' (type 'Brush')
  System.Windows.Data Information: 10 : Cannot retrieve value using the binding and no valid fallback value exists; using default instead. BindingExpression:Path=CurrentLight; DataItem=null; target element is 'DirectionalLight' (HashCode=4095240); target property is 'Direction' (type 'Vector3D')
  </code></pre>
  
  <hr>
  
  <p>After searching in Stackoverflow, ¿I find one solution about using "Fallback values"? Is it the best solution?
  <a href="https://stackoverflow.com/questions/3846823/getting-many-binding-information-in-wpf-output-window">Getting many Binding &quot;Information&quot; in WPF output window</a>)</p>
  
  <p>I saw in another thread stack overflow they recommend using the following statement (<a href="https://stackoverflow.com/questions/15016542/how-to-eliminate-binding-information-in-wpf-output-window-cannot-retrieve-va/18079727#18079727">How to eliminate Binding “Information” in WPF output window - cannot retrieve value using the binding</a>):</p>
  
  <pre><code>System.Diagnostics.PresentationTraceSources.DataBindingSource.Switch.Level = System.Diagnostics.SourceLevels.Critical;
  </code></pre>
  
  <p>Anyway, Why am I getting these errors? I understand that the types I use are correct as I have checked them in the links provided of the MSDN, is it correct?</p>
  
  <p>Thanks</p>