我有一堆带有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错误。
我是在叫错树吗?我认为这必须以某种方式。谢谢。
答案 0 :(得分:0)
假设您不想为比例设置动画,只需在视图模型中包含Scale属性即可。您无法从DataTemplate内部访问祖先DataContext(但WPF支持此功能)。
创建一个包含(INotifyPropertyChanged-firing)Scale属性的包装类(ViewModel),而不是将DataTemplate的DataContext设置为您的实体。现在,您的ContentControl可以绑定到视图模型的Scale属性。