vm里有个List属性Lc2
  <ListBox Height="283" HorizontalAlignment="Left" Margin="206,20,0,0" Name="listBox2" VerticalAlignment="Top" Width="462" 
            ItemsSource="{Binding Lc1}"  
                 >
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <ListBox ItemsSource="{Binding Lc2}" Name="listBox3">
                    </ListBox>
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox> 
Lc1和Lc2是两个独立的List属性.
单个listBox2绑定Lc1是没问题的.
但是嵌套了一个listBox3后,listBox3就绑定不了Lc2了.
高手能帮忙看看吗

解决方案 »

  1.   

      <Window.DataContext>
            <WpfApplication:vm x:Name="cvm"/>
        </Window.DataContext>
    我是这样绑定vm的.
      

  2.   

    我来拯救你吧
    呵呵
    是这样的 你的问题在于
    <ListBox.ItemTemplate>
                    <DataTemplate>
                        <Grid>
                            <ListBox ItemsSource="{Binding Lc2}" Name="listBox3">
                        </ListBox>
                        </Grid>
                    </DataTemplate>
                </ListBox.ItemTemplate>这段代码是重写了ItemTemplate
    而里面的数据对应的是你Binding Lc1的数据项
    比如你Lc1是这样定义的List<person> 那么你一条数据对应的是一个person对象
    也就是说你下面这句<ListBox ItemsSource="{Binding Lc2}" Name="listBox3">
    里面的bing Lc2必须你person对象中的属性
    这样才能绑定 不信你试试
    虽然没有写代码测试 但是原理是这样的
    不懂的可以继续发问
      

  3.   

      <ListBox ItemsSource="{Binding Lc2}" Name="listBox3">这句是假定数据上下文DataContext还是顶级的,实际上,你在ItemTemplate里定义的绑定表达式默认是指向这个Item本身的对象,当然绑定不上了。建议你用RelativeSource来实现绑定父级DataContext中的属性。
      

  4.   

    LC1的对象下有LC2才能绑定.. 而且绑定的是LC1对象下的LC2.. 如果LC1和LC2是同类下的对象则无法绑定..
    ItemsSource = "{Binding xxx}"的时候DataContext已经变成绑定的xxx. (嵌套绑定的情况下)