using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections.ObjectModel;
using System.Collections.Generic;

namespace ThemingC1Window
{
    public class MyObject
    {
        public MyObject() 
        {
            NestedObjects = new ObservableCollection<MyNestedObject>( 
                new MyNestedObject[]{ 
                    new MyNestedObject( ) { Number = 0, Text = "zero" },
                    new MyNestedObject( ) { Number = 1, Text = "one" },
                    new MyNestedObject( ) { Number = 2, Text = "two" },
                    new MyNestedObject( ) { Number = 3, Text = "three" },
                });
            MoreTexts = new ObservableCollection<string>(
                new string[] { 
                    "some description", 
                    "this is sample text", 
                    "text will be shown here"
                });

            Text1 = "text1";
            Text2 = "text2";
            Text3 = "text3";
            Text4 = "text4";
            Text5 = "text5";

            Number1 = 1;
            Number2 = 2;
            Number3 = 3;
            Number4 = 4;
            Number5 = 5;
        }

        public ObservableCollection<MyNestedObject> NestedObjects { get; set; }
        public ObservableCollection<string> MoreTexts { get; set; }

        public string Text1 { get; set; }
        public string Text2 { get; set; }
        public string Text3 { get; set; }
        public string Text4 { get; set; }
        public string Text5 { get; set; }

        public int Number1 { get; set; }
        public int Number2 { get; set; }
        public int Number3 { get; set; }
        public int Number4 { get; set; }
        public int Number5 { get; set; }

    }

    public class MyNestedObject
    {
        public MyNestedObject() 
        {
            EvenMoreTexts = new ObservableCollection<string>(
                new string[] { 
                    "some extra description", 
                    "this is sample text inside another object", 
                    "text will be shown inside" 
                });
        }

        public string Text { get; set; }
        public int Number { get; set; }
        public ObservableCollection<string> EvenMoreTexts { get; set; }

        public override string ToString()
        {
            return "{MyNestedObject} " + Text;
        }
    }
}
