0

現在、私のアプリケーションは、緯度と経度のノード (7k の場所) を含む XML を読み取ります。スライダーを使用して、ユーザーはマップに表示するノードを選択できます。これで、ValueChanged が実行されるたびに、次のコードが実行されます。

foreach (HueDataClass dataClass in plotThumbList)
{
    Pushpin Lamp = new Pushpin();                  
    Lamp.Location = new Microsoft.Maps.MapControl.WPF.Location(dataClass.Lat, dataClass.Lon);
    hueMap.Children.Add(Lamp);
}

アプリケーションが一瞬フリーズして、すべての画鋲が表示されることがあります。どうすればパフォーマンスを向上させることができますか?

よろしく、ニールス

4

2 に答える 2

3

画鋲を MapLayer に手動で追加する代わりに、MapItemsControlを使用して、そのItemsSourceプロパティをデータ項目のObservableCollectionにバインドする必要があります。

<Window.Resources>
    <DataTemplate x:Key="MapItemDataTemplate">
        <m:Pushpin Location="{Binding ...}" ... />
    </DataTemplate>
    <local:DataItemsCollection x:Key="DataItems"/>
</Window.Resources>
<m:Map ... >
    <map:MapItemsControl
        ItemTemplate="{StaticResource MapItemDataTemplate}"
        ItemsSource="{Binding Source={StaticResource DataItems}}"/>
</m:Map>

コレクションにバインドする方法については、 ItemsSourceの例のセクションとそこにあるリンクも参照してください。

于 2012-11-22T12:53:24.110 に答える