//void OnPropertyChanged(string prop) ==========================================
        public static List <Kategorie> CreateKategorien()
        {
            //mw.TextBox1.Clear();
            List <Kategorie> liKategorie = new List <Kategorie>();
            Kategorie        Kategorie0  = null;
            List <Kategorie> lkuXX       = KategorienFüllen(liKategorie, ref Kategorie0);

            return(lkuXX);
        }
 public Kategorien(View.HauptFenster mw)
 {
     _mw = mw;
     InitializeComponent();
     OCK  = new OCKategorien();
     lika = OCK.maches();
     kat  = lika[0] as Kategorie;
     base.CommandBindings.Add(
         new CommandBinding(
             ApplicationCommands.Undo,
             (sender, e) => // Execute
     {
         e.Handled     = true;
         kat.IsChecked = false;
         treeKategorie.Focus();
     },
             (sender, e) => // CanExecute
     {
         e.Handled    = true;
         e.CanExecute = (kat.IsChecked != false);
     }));
 }
        public static List <Kategorie> KategorienFüllen(List <Kategorie> liKategorie, ref Kategorie Kategorie0)
        {
            Kategorie0 = new Kategorie("Kategorien")
            {
                IsInitiallySelected = true,
                IstExpanded         = true
            };
            Kategorie Kategorie1 = null;
            Kategorie Kategorie2 = null;
            Kategorie Kategorie3 = null;
            int       ID1        = -7;
            int       ID2        = -7;
            DataTable dtKat      = new DataTable();

            dtKat = DataSetAdmin.dtKategorien.DefaultView.ToTable();
            liKategorie.Clear();
            string strHeader = "";

            foreach (DataRow row1 in dtKat.Rows)
            {
                ID1 = Convert.ToInt32(row1["ID"]);
                int VorläuferID;
                if (DBNull.Value.Equals(row1["VorläuferID"]))
                {
                    VorläuferID = 0;
                }
                else
                {
                    VorläuferID = Convert.ToInt32(row1["VorläuferID"]);
                }
                if (VorläuferID > 0)
                {
                    continue;
                }
                strHeader = row1["Header"].ToString();
                //Debug.WriteLine("{0, -2} {1}", ID1, strHeader);
                Kategorie1 = new Kategorie(strHeader)
                {
                    IstExpanded = true
                };
                string strHeader2 = "";
                foreach (DataRow row2 in dtKat.Rows)
                {
                    ID2 = Convert.ToInt32(row2["ID"]);
                    int VorläuferID2;
                    if (DBNull.Value.Equals(row2["VorläuferID"]))
                    {
                        VorläuferID2 = 0;
                    }
                    else
                    {
                        VorläuferID2 = Convert.ToInt32(row2["VorläuferID"]);
                    }
                    if (ID1 != VorläuferID2)
                    {
                        continue;
                    }
                    strHeader2 = row2["Header"].ToString();
                    //Debug.WriteLine("     {0, -2} {1}", ID2, strHeader2);
                    Kategorie2 = new Kategorie(strHeader2)
                    {
                        IsChecked   = true,
                        IstExpanded = true
                    };
                    Kategorie1.KatChildren.Add(Kategorie2);

                    string strHeader3 = "";
                    foreach (DataRow row3 in dtKat.Rows)
                    {
                        int ID3 = Convert.ToInt32(row3["ID"]);
                        int VorläuferID3;
                        if (DBNull.Value.Equals(row3["VorläuferID"]))
                        {
                            VorläuferID3 = 0;
                        }
                        else
                        {
                            VorläuferID3 = Convert.ToInt32(row3["VorläuferID"]);
                        }
                        if (ID2 != VorläuferID3)
                        {
                            continue;
                        }
                        strHeader3 = row3["Header"].ToString();
                        //Debug.WriteLine("         {0, -2} {1}", ID3, strHeader3);
                        Kategorie3 = new Kategorie(strHeader3)
                        {
                            IstExpanded = true
                        };
                        Kategorie2.KatChildren.Add(Kategorie3);
                    }
                }
                Kategorie0.KatChildren.Add(Kategorie1);
            }
            Kategorie0.Initialize();
            liKategorie.Add(Kategorie0);

            /* liKategorie.ForEach(delegate(Kategorie fo)
             * {
             * Console.WriteLine(fo.Children.Count);
             * });
             * foreach (Kategorie KategorieVM in liKategorie)
             * {
             * Console.WriteLine("{0, -20} {1} {2}", KategorieVM.Name, KategorieVM.Children.Count, KategorieVM.IsInitiallySelected);
             * }  */
            return(liKategorie);
        }