2010-05-19 84 views
0

我正在C#和Silverlight中的GIS网站上工作,我试图根据地图图层填充ListBox。如果我把所有东西放在一个单独的XAML文件中(其中Map是在同一个文件中定义的),那么代码就可以工作,但是我想把东西分成单独的类,而ListBox不会填充到其他类中。XAML列表框绑定

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> 

上课的时候被这个C#代码调用

MYMAP正在设置...

公共部分类TableOfContents:UserControl { Map 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绑定定义的数据没有按” t似乎工作。

有什么想法?

编辑: XAML代码似乎被剪辑在帖子中(虽然它是可见的,当我编辑它)。数据绑定定义如下: 的ItemsSource = “{绑定路径=图层的ElementName = MYMAP}

回答

0

给这个一杆 - 的ItemsSource =”{结合myMap.Layers}”

也许一个简单的选择会在构造函数中设置“this.DataContext = map”,绑定将如下所示:ItemsSource =“{Binding Layers}”,你可以完全删除我的地图