저는 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의 선택 상태를 얻을 수 없습니다. 누군가 나를 도와 줄 수 있습니까 ??