Visual Basic の場合:
Imports System.Collections.ObjectModel Namespace UsingXamOrgChart Public Class Department Public Sub New(name As String) Me.Name = name Me.EmployeePositions = New ObservableCollection(Of EmployeePosition)() End Sub Public Property Name() As String Get Return m_Name End Get Set m_Name = Value End Set End Property Private m_Name As String Public Property EmployeePositions() As ObservableCollection(Of EmployeePosition) Get Return m_EmployeePositions End Get Set m_EmployeePositions = Value End Set End Property Private m_EmployeePositions As ObservableCollection(Of EmployeePosition) End Class Public Class EmployeePosition Public Sub New(jobTitle As String) Me.JobTitle = jobTitle Me.Employees = New ObservableCollection(Of Employee)() End Sub Public Property JobTitle() As String Get Return m_JobTitle End Get Set m_JobTitle = Value End Set End Property Private m_JobTitle As String Public Property Employees() As ObservableCollection(Of Employee) Get Return m_Employees End Get Set m_Employees = Value End Set End Property Private m_Employees As ObservableCollection(Of Employee) End Class Public Class Employee Public Sub New(firstName As String, lastName As String, jobTitle As String) Me.FirstName = firstName Me.LastName = lastName Me.JobTitle = jobTitle End Sub Public Property FirstName() As String Get Return m_FirstName End Get Set m_FirstName = Value End Set End Property Private m_FirstName As String Public Property LastName() As String Get Return m_LastName End Get Set m_LastName = Value End Set End Property Private m_LastName As String Public Property JobTitle() As String Get Return m_JobTitle End Get Set m_JobTitle = Value End Set End Property Private m_JobTitle As String End Class Public Class DepartmentViewModel Public Property Departments() As ObservableCollection(Of Department) Get Return m_Departments End Get Set m_Departments = Value End Set End Property Private m_Departments As ObservableCollection(Of Department) Public Sub New() Dim employee1 As New Employee("Rob", "Walters", "Senior Tool Designer") Dim employee2 As New Employee("Ovidiu", "Cracium", "Senior Tool Designer") Dim employee3 As New Employee("Thierry", "D'Hers", "Tool Designer") Dim employee4 As New Employee("Janice", "Galvin", "Tool Designer") Dim position1 As New EmployeePosition("Senior Tool Designer") position1.Employees.Add(employee1) position1.Employees.Add(employee2) Dim position2 As New EmployeePosition("Tool Designer") position2.Employees.Add(employee3) position2.Employees.Add(employee4) Dim department1 As New Department("Tool Design") department1.EmployeePositions.Add(position1) department1.EmployeePositions.Add(position2) Me.Departments = New ObservableCollection(Of Department)() Me.Departments.Add(department1) End Sub End Class End Namespace
C# の場合:
using System.Collections.ObjectModel; namespace UsingXamOrgChart { public class Department { public Department(string name) { this.Name = name; this.EmployeePositions = new ObservableCollection<EmployeePosition>(); } public string Name { get; set; } public ObservableCollection<EmployeePosition> EmployeePositions { get; set; } } public class EmployeePosition { public EmployeePosition(string jobTitle) { this.JobTitle = jobTitle; this.Employees = new ObservableCollection<Employee>(); } public string JobTitle { get; set; } public ObservableCollection<Employee> Employees { get; set; } } public class Employee { public Employee(string firstName, string lastName, string jobTitle) { this.FirstName = firstName; this.LastName = lastName; this.JobTitle = jobTitle; } public string FirstName { get; set; } public string LastName { get; set; } public string JobTitle { get; set; } } public class DepartmentViewModel { public ObservableCollection<Department> Departments { get; set; } public DepartmentViewModel() { Employee employee1 = new Employee("Rob", "Walters", "Senior Tool Designer"); Employee employee2 = new Employee("Ovidiu", "Cracium", "Senior Tool Designer"); Employee employee3 = new Employee("Thierry", "D'Hers", "Tool Designer"); Employee employee4 = new Employee("Janice", "Galvin", "Tool Designer"); EmployeePosition position1 = new EmployeePosition("Senior Tool Designer"); position1.Employees.Add(employee1); position1.Employees.Add(employee2); EmployeePosition position2 = new EmployeePosition("Tool Designer"); position2.Employees.Add(employee3); position2.Employees.Add(employee4); Department department1 = new Department("Tool Design"); department1.EmployeePositions.Add(position1); department1.EmployeePositions.Add(position2); this.Departments = new ObservableCollection<Department>(); this.Departments.Add(department1); } } }