У меня есть приложение silverlight, которое отображает позиции автомобилей на дороге.
Я использую шаблон MVVM, поэтому у меня есть коллекция MapPosition в моей модели представления.
Я такжеиспользуя внешний SDK (из ArcGIS), чтобы сделать мои рисунки, таким образом, ограничение состоит в том, что мне нужно нарисовать объект Symbol, который содержит TemplateControl, в который я могу поместить все, что захочу, конечно.не нашел способа привязать объект MapPosition (который в основном просто содержит координаты и некоторую дополнительную информацию) к шаблону, который мне очень не нужен, потому что у меня есть свойство, которое мне действительно нужно связать, чтобы изменить угол значка инапример, отобразить всплывающую подсказку.
Это единственный найденный способ заставить его работать, но он мне действительно не нравится:
MarkerSymbol symbol = new MarkerSymbol();
string xamlTemplate = String.Format(@"
<ControlTemplate xmlns=""http://schemas.microsoft.com/winfx/2006/xaml/presentation"" >
<Grid Width=""200"" Height=""200"">
<Grid.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX=""0.1"" ScaleY=""0.1"" />
<RotateTransform Angle=""{0}"" CenterX=""10"" CenterY=""10"" />
</TransformGroup>
</Grid.RenderTransform>
<Canvas VerticalAlignment=""Top"" HorizontalAlignment=""Center"">
<ToolTipService.ToolTip>
<ToolTip Content=""{1}""></ToolTip>
</ToolTipService.ToolTip>
<Canvas.RenderTransform>
<TranslateTransform X=""-50""/>
</Canvas.RenderTransform>
<Path Data=""F1 M 49.75,0L 0,200L 50,158.5L 100,200L 49.75,0 Z"" Fill=""#FF008F00"" Stroke=""Black""></Path>
</Canvas>
</Grid>
</ControlTemplate>", value.Course, value.ToolTip);
ControlTemplate template = new ControlTemplate();
boatSymbol.ControlTemplate = (ControlTemplate)XamlReader.Load(xamlTemplate);
Затем я зацикливаюсь на каждом элементе моего спискаи создайте шаблон на лету.
Итак, вопрос в том, как правильно связать шаблон с каждым объектом моего сотрудничества.llection и иметь шаблон в xaml вместо того, чтобы в моем коде была уродливая строка?
Большое спасибо за вашу помощь!