将列表绑定到xaml(wpf)中的对象列表属性(Application.Resources)

时间:2012-10-25 21:29:11

标签: wpf list xaml bind

我一直在互联网上搜索很多来解决这个问题,并找不到合适的解决方案。这是问题所在:(这是一个WPF应用程序,在VS2010中) 假设我有这个课程:

public class Airplane
{
   public string AirplaneName{get;set;}
   public ObservableCollection<People> myPeopleList {get;set;}
}
public class People
{
   public string Name{get;set;}
   public string SeatNumber{get;set;}   
}

现在我想创建一个Airplane类的实例,包括App.xaml文件中的人员列表。也就是说,创建我自己的资源(Application.Resources)。我尝试了这个,但我得到了一个例外:

<lcl:AirPlaneCollection x:Key="apCollection" >
            <lcl:Airplane  Name="airbus-780" myPeopleList="{StaticResource pList}" >
</lcl:AirPlaneCollection>
        <lcl:PeopleCollection x:Key="pList">
            <lcl:People  Name="name1" SeatNumber="1"/>
           <lcl:People  Name="name2" SeatNumber="2"/>
        </lcl:PeopleCollection>

AirPlaneCollection和PeopleCollection只是继承自ObservableCollection<Airplane>ObservableCollection<Poeple>的简单类 当我尝试使用该资源时(Application.Current.Resources [“appCollection”]它会编译,但我在运行时得到一个异常。 我的TreeView DataTemplate运行良好,因为如果我将代码隐藏中的类实例化为常规列表(Add ect。),它可以完美地工作......我做错了什么? 感谢先进..

1 个答案:

答案 0 :(得分:0)

终于找到了解决方案!! 在Application.Resources中,“pList”需要在“apCollection”之上声明。 可能声明顺序很重要..