在Xaml中调用类的实例

时间:2014-02-09 09:21:57

标签: silverlight xaml

帮助我理解。 我在VS2012中创建了SilverlightApplication1的模板。在我的解决方案文件夹中创建模型并添加类EmployeeTypes.cs。我需要在Xaml文件(Home.xaml)中调用EmployeeTypes.cs的实例。

我在Home.xaml中这样做:

<navigation:Page x:Class="SilverlightApplication1.Home" 
     xmlns:local="clr-namespace:SilverlightApplication1.Models" 
                           ....
                           ....

然后我这样做(所有这些都根据教程http://weblogs.asp.net/psheriff/archive/2012/04/09/silverlight-tree-view-with-multiple-levels.aspx):

<local:EmployeeTypes x:Key=" employeeTemplate"/>  

这里VS2012说:'找不到本地:EmployeeTypes'。验证您是否缺少程序集引用,并且已构建所有引用的程序集。

我哪里错了???

EmployeeTypes.cs

namespace SilverlightApplication1.Models
{
public class EmpolyeeTypes : List<EmployeeType>
{
    public EmpolyeeTypes()
    {
    EmployeeType type;
    type=new EmployeeType("Manager");
    type.Employees.Add(new Employee("Michael"));
    type.Employees.Add(new Employee("Paul"));
    this.Add(type);

    type = new EmployeeType("Project Managers");
    type.Employees.Add(new Employee("Tim"));
    type.Employees.Add(new Employee("John"));
    type.Employees.Add(new Employee("David"));
    this.Add(type);

    }


}

}

<navigation:Page x:Class="SilverlightApplication1.Home" 
xmlns:local="clr-namespace:SilverlightApplication1.Models"      
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"             
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480"
Title="Home"
Style="{StaticResource PageStyle}">
<local:EmployeeTypes x:Key=" employeeTemplate"/>
        .......
        .......


<Grid x:Name="LayoutRoot">

</Grid>

1 个答案:

答案 0 :(得分:2)

尝试将其移至一个UI控件的Resources,例如Resources的{​​{1}}:

Grid

或页面的<Grid x:Name="LayoutRoot"> <Grid.Resources> <local:EmployeeTypes x:Key=" employeeTemplate"/> </Grid.Resources> </Grid>

Resources
PS:我的答案来自Windows Phone和WPF背景,在silverlight中可能有所不同。不确定。