Я впервые использую Silverlight, и поэтому я новичок во всем стиле разметки xaml.Я создаю ГИС-приложение, используя библиотеку silverlight, предоставленную ESRI.
Насколько я понимаю, когда страница XAML анализируется сверху вниз, объекты создаются в порядке.Это правильно?У меня есть объект esri Map, созданный в строке 38 моей главной страницы, а затем в строке 247 моей главной страницы я создаю DrawControl (элемент управления рисованием, который я сделал сам).
Часть работы объектов в инструменте рисованиязаключается в том, что он создается путем передачи объекта карты в конструктор.С моим объектом Map с именем x: Name = "Map" у меня есть следующее для моего drawcontrol:
<local:DrawRootControl x:Name="DrawRoot" Height="152" Margin="216,10,0,0" Grid.Row="1" VerticalAlignment="Top" Visibility="Collapsed" map="{Binding ElementName=Map}"/>
Затем в моем контроле, у меня есть это в коде:
public static readonly DependencyProperty mapProperty = DependencyProperty.Register
(
"map",
typeof(Map),
typeof(DrawRootControl),
null
);
public Map map
{
get { return (Map)GetValue(mapProperty); }
set { SetValue(mapProperty, value); }
}
..........
public DrawRootControl()
{
// Required to initialize variables
InitializeComponent();
MyDrawObject = new Draw(map)
{
LineSymbol = CanvasDraw.Resources["DrawLineSymbol"] as LineSymbol,
FillSymbol = CanvasDraw.Resources["DrawFillSymbol"] as FillSymbol
};
MyDrawObject.DrawComplete += MyDrawObject_DrawComplete;
}
Когда я отлаживаю, мой объект карты в моем конструкторе является нулевым.Я думал, что если карта будет создана ранее на главной странице, а затем пропущена, когда я сделаю эту привязку, она не будет нулевой и будет инициализирована и создана.Может я неправильно делаю переплет?Я не совсем понимаю обязательную вещь.
Буду признателен за любую помощь.