在Silverlight中访问DataTemplate中的RenderTransform

时间:2009-10-21 00:06:38

标签: silverlight datatemplate

我有一堆带有DataTemplate的ContentControls如下:

    <DataTemplate>         
        <Canvas>
            <Canvas.RenderTransform>
                <TransformGroup>
                    <ScaleTransform ScaleX="1.0" ScaleY="1.0"/>
                </TransformGroup>
            </Canvas.RenderTransform>
        </Canvas>
    </DataTemplate>

...我想动态改变他们的比例。我是.NET的新手,所以请原谅。我尝试使用这种技术:

http://msdn.microsoft.com/en-us/library/bb613579.aspx

...但DataTemplates似乎在Silverlight中没有FindName。然后我试着像这样绑定Scales:

<ScaleTransform ScaleX="{Binding Scale}" ScaleY="{Binding Scale}"/>

...但是在我跑的时候遇到了XAML错误。

我是在叫错树吗?我认为这必须以某种方式。

谢谢。

1 个答案:

答案 0 :(得分:0)

假设您不想为比例设置动画,只需在视图模型中包含Scale属性即可。您无法从DataTemplate内部访问祖先DataContext(但WPF支持此功能)。

创建一个包含(INotifyPropertyChanged-firing)Scale属性的包装类(ViewModel),而不是将DataTemplate的DataContext设置为您的实体。现在,您的ContentControl可以绑定到视图模型的Scale属性。