解决方案 »

  1.   


    Area are = (Area)list02.SelectedItem每选一次 list01 ,都会给你list02的数据源赋值。但是你并为选择list02中的项,所以上边的list02.SelectedItem为null,自然会报错。判断  list02.SelectedItem 是否为空 在转成Area.
      

  2.   

    或者 在  list02.ItemsSource = listCity; 之前判断listCity 是否为空,不为空在 让list02的默认选择第一项。
      

  3.   

    不能只考虑list02.SelectedItem从空变成非空
    还要考虑list02.SelectedItem从非空变成空的情况一开始,02和03都是空的,所以list02.SelectedItem也必然是空的
    然后当你选择了01,02中加载了数据,你再点选02,list02.SelectedItem从空变为非空当你重新选择01,02重新加载,此时先将02清空再重新绑定新数据,list02.SelectedItem从非空变为空了.所以应该先判断list02.SelectedItem非空,再根据list02.SelectedItem去绑定03
      

  4.   

    或者你不要将代码写到selectChanged事件里,而是写入click事件
    避免非用户操作导致SelectedItem改变时多次执行同样的代码