【问题标题】:Binding EntranceThemeTransition Properties of Grid in MapItemsControl.ItemTemplate Not Working在 MapItemsControl.ItemTemplate 中绑定 Grid 的 EntranceThemeTransition 属性不起作用
【发布时间】:2014-12-03 09:39:03
【问题描述】:

我有一个地图控件,其地图项绑定如下:

<maps:MapItemsControl ItemsSource="{Binding MapObjects}">
    <maps:MapItemsControl.ItemTemplate>
        <DataTemplate>
            <Grid   
               maps:MapControl.Location="{Binding Location}"
               maps:MapControl.NormalizedAnchorPoint="{Binding AnchorPoint}" >
                   <Grid.Transitions>
                       <TransitionCollection>
                            <EntranceThemeTransition 
                                 FromVerticalOffset="{Binding VerticalOffset}" 
                                 FromHorizontalOffset="{Binding HorizontalOffset}" />
                       </TransitionCollection>
                   </Grid.Transitions>
               ...
            </Grid>
        </DataTemplate>
     </maps:MapItemsControl.ItemTemplate>
 </maps:MapItemsControl>

我想要实现的是让地图项目有一些漂亮的动画,这样它们就不会突然出现......特别是我希望它们朝着地图中心的方向滑动到位。

但是这段代码似乎不起作用...对于EntranceThemeTransition 的两个属性,Binding 甚至都没有被“调用”,它们保留了它们的默认值,以便每个地图项都从右侧滑入。

此外,当我将 Binding 语句更改为我的 ViewModel 中不存在的某个属性时:FromVerticalOffset="{Binding NonExistentProperty},没有错误表明这通常会发生并且看起来像这样:Error: BindingExpression path error: 'NonExistentProperty' property not found on 'IMS_Mobile.ViewModels.MapViewModel+MapItem...'

有人可以帮忙吗?谢谢。

【问题讨论】:

  • 请注意,我提供了赏金,因为我的问题类似但更简单 - 绑定到相同的 FromHorizo​​ntalOffset,但它在 TextBlock.Transitions 中。
  • WP8.1的地图控件漏洞百出,请做好准备,这可能根本不起作用。
  • 这很奇怪。如果您为 EntranceThemeTransition 编写自定义附加属性会发生什么?
  • 我在 MapItemsControl 上看不到 Horizo​​ntalOffset 和 VerticalOffset 属性,这是您要绑定的 DataContext - 这不是问题吗?
  • FromVerticalOffset 和 FromHorizo​​ntalOffset 是 EntranceThemeTransition 的属性,参见documentation

标签: c# xaml windows-runtime windows-phone-8.1


【解决方案1】:

我没有使用 MapItemsControl,但它可能类似于 ItemsControl。从 ItemTemplate 中移除过渡并将其添加到 maps:MapItemsControl.ItemContainerTransitions,如下所示:

<maps:MapItemsControl ItemsSource="{Binding MapObjects}">
<maps:MapItemsControl.ItemContainerTransitions>
              <TransitionCollection>
                        <EntranceThemeTransition 
                             FromVerticalOffset="{Binding VerticalOffset}" 
                             FromHorizontalOffset="{Binding HorizontalOffset}" />
                   </TransitionCollection>
        </maps:MapItemsControl.ItemContainerTransitions>
<maps:MapItemsControl.ItemTemplate>
    <DataTemplate>
        <Grid   
           maps:MapControl.Location="{Binding Location}"
           maps:MapControl.NormalizedAnchorPoint="{Binding AnchorPoint}" >

           ...
        </Grid>
    </DataTemplate>
 </maps:MapItemsControl.ItemTemplate>

【讨论】:

  • 感谢您的努力,您的代码会导致以下错误:无法识别或无法访问成员“ItemContainerTransitions”。在“MapItemsControl”类型中找不到可附加属性“ItemContainerTransitions”。
猜你喜欢
  • 1970-01-01
  • 2017-06-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-01
  • 2016-08-20
  • 2015-03-06
相关资源
最近更新 更多