【问题标题】:clearing a mapItemsControl.Itemtemplate WP7 Maps清除 mapItemsControl.Itemtemplate WP7 地图
【发布时间】:2011-08-02 06:35:37
【问题描述】:

嗨,我经常更新这个地图,我注意到它的项目越来越多,而不是仅仅刷新所有项目

我通过 mapz.ItemsSource = App.ViewModel.LocationItems 向它分配项目; 在此之前如何清除mapz中的现有项目?

  <my:Map x:Name="myMap" Height="480" Width="444" CredentialsProvider="NON YE BIZ" 
                        Grid.ColumnSpan="1" LogoVisibility="Collapsed" CopyrightVisibility="Collapsed" Margin="5,0,10,0" VerticalContentAlignment="Top" HorizontalContentAlignment="Left" >
                    <my:MapItemsControl x:Name="mapz" ItemsSource="{Binding LocationItems}" Width="450">
                        <my:MapItemsControl.ItemTemplate>
                            <DataTemplate>
                                <my:Pushpin Name="MyPushPin" Location="{Binding Target_Coordinate}" Content="{Binding Target_NickName}"/>
                    </DataTemplate>
                </my:MapItemsControl.ItemTemplate>
                </my:MapItemsControl>
                </my:Map>

【问题讨论】:

  • 能否请您显示添加/删除项目的代码?您要绑定的集合类型是什么?

标签: c# .net bing-maps itemscontrol windows-phone


【解决方案1】:

只需致电LocationItems.Clear()。如果 LocationItems 是 ObservableCollection,则地图会清除已渲染的项目。

使用数据绑定时完全没有理由直接访问 UI。

【讨论】:

    【解决方案2】:

    ItemTemplate 定义控件的外观和一般行为 - 它不是控件本身。因此,您必须查看集合本身,而不是模板。要清除现有的ItemCollection,您需要:

    mapz.Items.Clear();
    

    【讨论】:

    • 如果使用 ItemsSource 则不能使用 Items 进行编辑(仅用于读取)。此代码引发异常。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多