WPF: Binding Error, obwohl es funktioniert!?



  • Hallo Leute,

    folgendes Control:

    public class ViewItemBase : Control, INotifyPropertyChanged
    	{
    		static ViewItemBase()
    		{
    			FrameworkElement.DefaultStyleKeyProperty.OverrideMetadata(
    				typeof(ViewItemBase), new FrameworkPropertyMetadata(typeof(ViewItemBase)));
    		}
    
    ....
    
    	#region RotationAngle
    
    		public double RotationAngle
    		{
    			get { return (double)GetValue(RotationAngleProperty); }
    			set { SetValue(RotationAngleProperty, value); }
    		}
    
    		// Using a DependencyProperty as the backing store for RotationAngle.  This enables animation, styling, binding, etc...
    		public static readonly DependencyProperty RotationAngleProperty =
    			DependencyProperty.Register("RotationAngle", typeof(double), typeof(ViewItemBase), new UIPropertyMetadata(0.0, OnRotationChange));
    
    		private static void OnRotationChange(DependencyObject d, DependencyPropertyChangedEventArgs e)
    		{
    			var me = d as ViewItemBase;
    			me.CalcBounds();
    		}
    
    		#endregion
    ...
    }
    

    der XAML Style dazu:

    <Style x:Key="{x:Type Model:ViewItemBase}" TargetType="{x:Type Model:ViewItemBase}">
    		<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
    		<Setter Property="SnapsToDevicePixels" Value="true"/>
    
    		<Setter Property="LayoutTransform">
    			<Setter.Value>
    				<RotateTransform Angle="{Binding RotationAngle, RelativeSource={RelativeSource AncestorType={x:Type Model:ViewItemBase}}}"/>
    			</Setter.Value>
    		</Setter>
    	</Style>
    

    Das Binding des RotationTransform Angle funktioniert, aber trotzdem bekomme ich ein Binding error:

    System.Windows.Data Error: 4 : Cannot find source for binding with reference 'RelativeSource FindAncestor, AncestorType='Designer.Core.Controls.Model.ViewItemBase', AncestorLevel='1''. BindingExpression:Path=RotationAngle; DataItem=null; target element is 'RotateTransform' (HashCode=62225447); target property is 'Angle' (type 'Double')

    Was is da falsch ! ?? Obwohl es geht:)

    P.S. Alternativ RelativeSource={RelativeSource TemplateParent} geht nicht,deswegen über die Ancester!!

    grüße


Log in to reply