2011-03-16 6 views
0

저는 Silverlight가 처음이므로 Bing Map Control에 익숙하지 않습니다. 다음은 내가Bing Map의 MapItemsControl 선택 상태 Silverlight 컨트롤

를 달성하기 위해 노력하고 무엇 I했습니다 2 개 속성을 가지고 있으며,이 같이 보이는 뷰 모델 ... 내 XAML에서

public class Vm : INotifyPropertyChanged 
{ 
    private LocationCollection _locations; 

    public LocationCollection Locations 
    { 
     get { return _locations; } 
     set 
     { 
      _locations = value; 
      this.Notify("Locations"); 
     } 
    } 

    private Location _selectedLocation; 

    public Location SelectedLocation 
    { 
     get { return _selectedLocation; } 
     set 
     { 
      _selectedLocation = value; 
      this.Notify("SelectedLocation"); 
     } 
    } 

    protected virtual void Notify(string property) 
    { 
     if(null != this.PropertyChanged) 
     { 
      PropertyChangedEventArgs e = new PropertyChangedEventArgs(property); 
      this.PropertyChanged(this,e); 
     } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 
} 

나는 목록 상자와 빙지도 제어 할 수 있습니다. 목록 상자는 위치에 바인딩되며 (표시 멤버는 지금은 위치 찾기입니다)지도 컨트롤에는 위치에도 바인딩 된 MapsItemControl이 있습니다. ListBox의 SelectedItem이 SelectedLocation에 바인딩되고지도의 가운데가 SelectedLocation에도 바인딩됩니다. 내가 목록 상자에서 항목을 선택 같이 XAML이

<Grid x:Name="LayoutRoot" Background="White"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="Auto"/> 
    </Grid.RowDefinitions> 
    <ListBox ItemsSource="{Binding Path=Locations}" 
      SelectedItem="{Binding Path=SelectedLocation, Mode=TwoWay}" 
      DisplayMemberPath="Latitude" 
      Grid.Row="0"/> 

    <map:Map 
     Grid.Row="1" 
     CredentialsProvider="Av2K1aKwZLPJRS-F_m1TGlFg2bPFVVDgMGbxfFp-1rdpUrwfQmiPSouaSHrHoK-j" 
     Loaded="Map_Loaded" 
     Center="{Binding Path=SelectedLocation, Mode=TwoWay}" 
     ZoomLevel="17"> 
     <map:MapItemsControl x:Name="mapItemsControl" ItemsSource="{Binding Path=Locations}"> 
      <map:MapItemsControl.ItemTemplate> 
       <DataTemplate> 
        <map:Pushpin 
         Location="{Binding}" 
         /> 
       </DataTemplate> 
      </map:MapItemsControl.ItemTemplate> 
     </map:MapItemsControl> 
    </map:Map> 
</Grid> 

처럼 보이는 그래서지도 변화의 중심 것을 볼 수 있어요. 그러나 나는이 경우에도 압정 템플릿을 변경하고 싶습니다. OOB 압핀 대신 이미지를 표시한다고 가정 해 봅시다. 압핀을 사용자 정의하는 방법에 대한 개념을 이해하지만 목록 상자 등의 다른 ItemsControl에서 찾을 수있는 것과 비슷한 MapsItemControl의 선택 상태를 얻을 수 없습니다. 누군가 나를 도와 줄 수 있습니까 ??

답변

0

SelectedLocation에만 바인딩 된 다른 MapItemsControl을 추가하고 다른 MapItemsControl을 SelectedLocation을 제외한 모든 위치에 바인딩 할 수 있습니다.

그런 식으로 선택한 템플릿과 선택되지 않은 템플릿에 대해 별도의 템플릿을 사용할 수 있습니다.

관련 문제