在WP7用户控件中进行数据绑定时获取AG_E_PARSER_BAD_PROPERTY_VALUE

时间:2011-03-18 13:08:20

标签: silverlight-4.0 windows-phone-7

我在Silverlight中创建了一个用户控件,它基本上可以设置矩形的大小。

    <StackPanel x:Name="LayoutRoot" Background="Gray"><StackPanel.Resources>
        <Storyboard x:Name="myStoryboard" Completed="myStoryboard_Completed">
            <DoubleAnimation x:Name="ExpandY" From="{Binding Path=From}" To="{Binding Path=To}" Duration="00:00:2" 
            Storyboard.TargetName="myScaleTransform" 
            Storyboard.TargetProperty="ScaleY">
                <DoubleAnimation.EasingFunction>
                    <BackEase Amplitude="0.0" EasingMode="EaseInOut" />
                </DoubleAnimation.EasingFunction>
            </DoubleAnimation>
        </Storyboard>            
    </StackPanel.Resources>

    <Rectangle  x:Name="myRectangle" MouseLeftButtonDown="Mouse_Clicked" 
 Fill="{Binding Path=Barcolor}" Width="35" Height="50" RadiusX="2" RadiusY="2"  MouseEnter="myRectangle_MouseEnter" Stroke="White" StrokeThickness="0" MouseLeave="myRectangle_MouseLeave">
        <Rectangle.RenderTransform>
            <ScaleTransform x:Name="myScaleTransform" CenterY="50"/>
        </Rectangle.RenderTransform>
    </Rectangle>
</StackPanel>

我已将一个实现INotifyPropertyChanged的对象绑定到此作为数据上下文。

现在,当我在ASP.NET主页中将其作为silverlight控件运行时,整个工作正常。但是当我移植相同的代码来创建WP7用户控件时,我得到指向From =“{Binding Path = From}”位于Double动画“ExpandY”中的位置的AG_E_PARSER_BAD_PROPERTY_VALUE。

在silverlight控件和WP7用户控件中绑定数据有什么不同吗?

2 个答案:

答案 0 :(得分:2)

此处的问题是DoubleAnimation不是FrameworkElement,而在Silverlight for WP7中,您只能在FrameworkElement上设置绑定。为了实现这种效果,您需要在代码隐藏中操纵动画,可能需要将行为包装到单独的UserControl中。

与此问题相同:Binding to 'To' In Storyboard

答案 1 :(得分:1)

根据您的代码我假设您在网络版上使用SL4。 WP7基于Silverlight 3,并且不支持完全相同的绑定。

我怀疑您的问题与Dynamically change gradientstop color

中的问题相同