Treeview with data Grid and context menu
output


start Program


.cs

using Microsoft.SharePoint;
using Microsoft.SharePoint.Client;
using System.Text.RegularExpressions;

namespace SilverligtUsertree_RK
{
    public partial class MainPage : UserControl
    {
        ClientContext site;
        List listobj;
        ListItemCollection listcoll;
        double a, b;
        string userid = "";
        string loginuserid;

        public MainPage()
        {
            try
            {
                InitializeComponent();
                site = new ClientContext("sitename");
                site.Load(site.Web);

                listobj = site.Web.Lists.GetByTitle("User Details_RK");
                site.Load(listobj);

                CamlQuery cam = new CamlQuery();
                cam.ViewXml = "<View/>";

                listcoll = listobj.GetItems(cam);
                site.Load(listcoll);
                site.ExecuteQueryAsync(new ClientRequestSucceededEventHandler(sucess), null);

                ContextMenu contex = new ContextMenu();
                contex.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
                contex.VerticalAlignment = System.Windows.VerticalAlignment.Top;

                MenuItem Edit = new MenuItem();
                Edit.Header = "Edit";
                contex.Items.Add(Edit);
                MenuItem delete = new MenuItem();
                delete.Header = "Delete";
                contex.Items.Add(delete);
                MenuItem exit = new MenuItem();
                exit.Header = "Exit";
                contex.Items.Add(exit);

                Edit.Click += new RoutedEventHandler(Edit_Click);
                delete.Click += new RoutedEventHandler(delete_Click);
                exit.Click += new RoutedEventHandler(exit_Click);
                grid1.Children.Add(contex);
                grid1.Visibility = System.Windows.Visibility.Collapsed;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "error in mainpage");
            }

        }

        void exit_Click(object sender, RoutedEventArgs e)
        {
            grid1.Visibility = Visibility.Collapsed;
            // this.Content = new MainPage();
        }
        public void sucess(object sender, ClientRequestSucceededEventArgs args)
        {
            Dispatcher.BeginInvoke(treeview);
        }
        public void treeview()
        {
            try
            {
                // didnot look for existing item because userid is unique in list


                TreeViewItem tvitem = new TreeViewItem();//treeview the list
                tvitem.Header = "UserID";
                treeView1.Items.Add(tvitem);

                foreach (var item in listcoll)
                {
                    TreeViewItem tvi = new TreeViewItem();
                    string useridlist = Convert.ToString(item["UserID"]);
                    tvi.Header = useridlist;
                    tvitem.Items.Add(tvi);
                    tvi.MouseRightButtonDown += new MouseButtonEventHandler(tvi_MouseRightButtonDown);
                    tvi.MouseLeftButtonUp += new MouseButtonEventHandler(tvi_MouseLeftButtonUp);
                }

           
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "treeview");
            }
        }

        void tvi_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
        {
            try
            {
                TreeViewItem treevie = sender as TreeViewItem;
                loginuserid = treevie.Header.ToString();

                List<_oneuserclass> userdatagrid = new List<_oneuserclass>();//creating list our own(see below)
                foreach (ListItem item in listcoll)
                {
                    //MessageBox.Show(loginuserid + "==" + Convert.ToString(item["UserID"]));
                    if (loginuserid == Convert.ToString(item["UserID"]))
                    {

                        String result = Regex.Replace(Convert.ToString(item["Address"]), @"<[^>]*>", String.Empty);//removing the all html tags..........
                        userdatagrid.Add(new _oneuserclass
                        {

                            FirstName = Convert.ToString(item["First_x0020_Name"]),
                            LastName = Convert.ToString(item["Last_x0020_Name"]),
                            UserID = Convert.ToString(item["UserID"]),
                            Qualification = Convert.ToString(item["Qualification"]),
                            Address = result,
                            DateofBirth = Convert.ToDateTime(item["DateOfBirth"]).ToString("dd/MM/yyyy"),
                            ID = Convert.ToInt16(item["ID"]),
                            Password = Convert.ToString(item["PassWord"])

                        });
                    }

                    dataGrid1.ItemsSource = userdatagrid;
                }

            }
            catch (Exception ex)
            {
                //MessageBox.Show("error in edit" + ex.Message);
            }
        }

        void tvi_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            TreeViewItem treevie = sender as TreeViewItem;
            userid = treevie.Header.ToString();
            //  MessageBox.Show(userid);

            e.Handled = true;
            a = e.GetPosition(treeView1).X;
            b = e.GetPosition(treeView1).Y;
            grid1.Margin = new Thickness(a, b, 0, 0);
            grid1.Visibility = System.Windows.Visibility.Visible;
        }

        private void Edit_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                grid1.Visibility = System.Windows.Visibility.Collapsed;
                EditingChildWindow1 editchild = new EditingChildWindow1(userid);//name of child window
                editchild.txtuserid.Text = userid;
                editchild.txtuserid.IsEnabled = true;//to keep values as default
                editchild.Show();
            }
            catch (Exception ex)
            {
            }
        }
        private void delete_Click(object sender, RoutedEventArgs e)
        {
            grid1.Visibility = System.Windows.Visibility.Collapsed;
            MessageBoxResult result = MessageBox.Show("Are You sure want to delete the item?" + userid, "Delete item", MessageBoxButton.OKCancel);
            if (result == MessageBoxResult.OK)
            {
                foreach (ListItem item in listcoll)
                {
                    string deleteuseritem = Convert.ToString(item["UserID"]);
                    if (deleteuseritem == userid)
                    {
                        int id = Convert.ToInt16(item["ID"]);
                        ListItem litem = listobj.GetItemById(id);
                        litem.DeleteObject();
                        site.ExecuteQueryAsync(new ClientRequestSucceededEventHandler(succed), null);
                        MessageBox.Show("Hee..! hee..! hee..! your unwanted item is deleted...!");
                        this.Content = new MainPage();
                    }
                }
            }
        }
        public void succed(object sender, ClientRequestSucceededEventArgs arg)
        {

        }
        public class _oneuserclass
        {
            public string FirstName { get; set; }
            public string LastName { get; set; }
            public string Password { get; set; }
            public string UserID { get; set; }
            public string Qualification { get; set; }
            public string Address { get; set; }
            public string DateofBirth { get; set; }
            public int ID { get; set; }
        }

    }
}


Editing 


.cs
using Microsoft.SharePoint;
using Microsoft.SharePoint.Client;
using System.Text.RegularExpressions;

namespace SilverligtUsertree_RK
{
    public partial class EditingChildWindow1 : ChildWindow
    {
        ClientContext site;
        List listobj;
        ListItemCollection listcoll;
        string _userid;
        int ID = 0;
        public EditingChildWindow1(string userid)
        {
            InitializeComponent();
            _userid = userid;

            site = new ClientContext("sitename");
            site.Load(site.Web);

            listobj = site.Web.Lists.GetByTitle("User Details_RK");
            site.Load(listobj);

            CamlQuery cam = new CamlQuery();
            cam.ViewXml = "<View/>";

            listcoll = listobj.GetItems(cam);
            site.Load(listcoll);
            site.ExecuteQueryAsync(new ClientRequestSucceededEventHandler(sucess), null);
            //this.DialogResult = true;
        } 
                private void sucess(object sender, ClientRequestSucceededEventArgs arg)
        {
            Dispatcher.BeginInvoke(editchid);
        }
        private void editchid()
        {
            ComboBoxItem combo = combo_qualifi.SelectedItem as ComboBoxItem;
            foreach (ListItem item in listcoll)
            {
                String result2 = Regex.Replace(Convert.ToString(item["Address"]), @"<[^>]*>", String.Empty);
                try
                {
                    string useridcheck = Convert.ToString(item["UserID"]);
                    string fname = Convert.ToString(item["First_x0020_Name"]);
                    string lname = Convert.ToString(item["Last_x0020_Name"]);
                    string pwd = Convert.ToString(item["PassWord"]);
                    DateTime dt = Convert.ToDateTime(item["DateOfBirth"]);
                    string qualif = Convert.ToString(item["Qualification"]);
                    string address = result2;
                   
                    if (useridcheck == _userid)
                    {
                        txtfirsrname.Text = fname;
                        txtlastname.Text = lname;
                        txtpassowrd.Text = pwd;
                        txtdateofbirth.Text =Convert.ToString(dt);
                        txtaddress.Text = address;
                        combo_qualifi.Items.Insert(0, qualif); combo_qualifi.SelectedIndex = 0;
                    }
                }
                catch { }
            }
          
        }
        
        private void OKButton_Click(object sender, RoutedEventArgs e)
        {
            //just inserting into the list
            ComboBoxItem combo = combo_qualifi.SelectedItem as ComboBoxItem;//we cannto add combox items directly so we use ComboBoxItem
            foreach (var item in listcoll)
            {
                try
                {
                    string useridcheck = Convert.ToString(item["UserID"]);

                    if (useridcheck == _userid)
                    {
                        int id = Convert.ToInt32(item["ID"]);
                        ID = id;
                        break;
                    }

                }
                catch (Exception ex)
                {
                    MessageBox.Show("insert properly" + ex.Message);
                }
            }
            ListItem items = listobj.GetItemById(ID);
            items["First_x0020_Name"] = txtfirsrname.Text;
            items["Last_x0020_Name"] = txtlastname.Text;
            items["UserID"] = txtuserid.Text;
            items["PassWord"] = txtpassowrd.Text;
            items["DateOfBirth"] = Convert.ToDateTime(txtdateofbirth.Text);
            items["Qualification"] = Convert.ToString(combo.Content);
            items["Address"] = txtaddress.Text;
            items.Update();
            site.ExecuteQueryAsync(new ClientRequestSucceededEventHandler(sucessced), null);
            this.DialogResult = true;
        }
               public void sucessced(object sender, ClientRequestSucceededEventArgs arg)
        {
        }
        private void CancelButton_Click(object sender, RoutedEventArgs e)
        {
            this.DialogResult = false;
        }
        //private void button1_Click(object sender, RoutedEventArgs e)
        //{
        //    txtfirsrname.Text = string.Empty;
        //    txtlastname.Text = string.Empty;
        //    txtpassowrd.Password = string.Empty;
        //    txtdateofbirth.Text = string.Empty;
        //    txtqualification.SelectedItem = string.Empty;
        //    txtaddress.Text = string.Empty;
        //}

    public void succed(object sender, ClientRequestSucceededEventArgs arg)
    {
    }        
    }
}

1 comment: