Я работаю над веб-сайтом ГИС в C # и Silverlight и пытаюсь заполнить ListBox на основе слоев карты. Код работает, если я собираю все вместе в один файл XAML (где карта определена в одном и том же файле), но я пытаюсь разделить вещи на отдельные классы, а ListBox не будет заполняться в другом классе.
Код XAML.
<CheckBox IsChecked="{Binding Visible, Mode=TwoWay}" />
<Slider Margin="-5,0,0,0" Minimum="0" Maximum="1" Width="30"
Value="{Binding Opacity, Mode=TwoWay}" Height="18" />-->
<TextBlock Text="{Binding ID, Mode=OneWay}" Margin="5,0,0,0" >
<ToolTipService.ToolTip>
<StackPanel MaxWidth="400">
<TextBlock FontWeight="Bold" Text="{Binding CopyrightText}" TextWrapping="Wrap" />
<TextBlock Text="{Binding Description}" TextWrapping="Wrap" />
</StackPanel>
</ToolTipService.ToolTip>
</TextBlock>
</StackPanel>
</DataTemplate>
myMap устанавливается, когда класс вызывается этим кодом C # ...
открытый частичный класс TableOfContents: UserControl
{
Карта myMap;
public TableOfContents(ref Map map)
{
InitializeComponent();
myMap = map;
foreach (Layer thisLayer in myMap.Layers)
{
layerList.Items.Add(new TextBlock() { Text = thisLayer.ID });
}
}
}
Оператор foreach добавляет TextBlocks для всех слоев карты (это всего лишь тестовый код), поэтому я знаю, что информация передается правильно, но привязка данных, определенная в XAML, похоже, не работает.
Есть мысли?
EDIT:
Код XAML, похоже, обрезан в посте (хотя он виден, когда я его редактирую). Привязка данных определяется:
ItemsSource = "{Binding Path = Layers, ElementName = myMap}