Я пытаюсь воспроизвести образец BingMaps обучающего набора для Windows Phone 7: http://msdn.microsoft.com/en-us/wp7trainingcourse_usingbingmapslab_topic2.aspx#_Toc271039352
, но вместо того, чтобы связать все в коде, я бы хотел использовать модель представления.
Всеработает нормально, за исключением того, что привязка к свойству Mode (антенна или дорога) вызывает XamlParseException.Есть ли проблема, потому что это не простое свойство?
Это оригинальный Xaml:
<my:Map Name="Map"
CredentialsProvider="{Binding CredentialsProvider}">
<my:Map.Mode>
<my:AerialMode ShouldDisplayLabels="True" />
</my:Map.Mode>
</my:Map>
. Map.Mode может быть изменен из codebehind.
Вместо этого я пытаюсь сделать следующее:
<my:Map x:Name="Map"
CredentialsProvider="{Binding CredentialsProvider}"
ZoomLevel="{Binding Zoom, Mode=TwoWay}"
Center="{Binding Center, Mode=TwoWay}"
Mode="{Binding MapMode}" />
и важная часть модели представления:
private MapMode _mapMode = new AerialMode(true);
public MapMode MapMode
{
get { return _mapMode; }
set
{
_mapMode = value;
RaisePropertyChanged("MapMode");
}
}
private void ChangeMapMode()
{
if (MapMode is AerialMode)
{
MapMode = new RoadMode();
}
else
{
MapMode = new AerialMode(true);
}
}
Спасибо за вашу помощь!