2011-08-02 36 views
0

喜IM重複地更新這個圖,我發現它的acumulating項目,而不是僅僅刷新所有項目例如清除mapItemsControl.Itemtemplate WP7地圖

林assing項目給它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> 
+0

您能否顯示添加/刪除項目的代碼?什麼是你綁定的集合類型? – ColinE

回答

2

直接讓LocationItems.Clear()。如果LocationItems是ObservableCollection,則清除已經呈現的項目的地圖。

在使用數據綁定時沒有理由直接訪問UI。

2

ItemTemplate定義的外觀和感覺和控制的一般行爲 - 它不是控件本身。因此,您必須查看集合本身,而不是模板。要清除現有ItemCollection,你需要這樣的:

mapz.Items.Clear(); 
+0

如果使用ItemsSource(僅用於讀取),則無法使用項目進行編輯。這段代碼拋出異常。 – RredCat