public void BuildRoster(IWarrior warrior) { _ExperienceList.Clear(); this.m_StackPanel.Children.Clear(); int numberOFRows = warrior.MaximumExperience / 10; int overallCounter = 1; for (int rowCounter = 0; rowCounter < numberOFRows; rowCounter++) { StackPanel panel = new StackPanel() { Orientation = Orientation.Horizontal }; for (int i = 0; i < warrior.MaximumExperience; i++) { //mmmm TODO logic and knowledge of a domain model bool hasThickborder = warrior.IsLevelUp(overallCounter); bool isChecked = overallCounter < warrior.CurrentExperience; IExperience exp = new Experience(overallCounter, hasThickborder, isChecked); overallCounter++; _ExperienceList.Add(exp); panel.Children.Add(exp as Experience); } this.m_StackPanel.Children.Add(panel); } }