Im new to Winforms and C#. My form is suppose to read an XML and Add some of its nodes' values to the forms textBoxes. Also it should update/modify these nodes values by the values inserted by the user into the text boxes then save them. This is what the form looks like :
Form Design
The form code: 
 bare in mind button4_Click = 'Add button'. button2_Click = 'Modify Button'.
using System;
using System.ComponentModel;
using System.Windows.Forms;
using System.Xml;
namespace WindowsForm
{
public partial class Form1 : Form, INotifyPropertyChanged
{
    XmlDocument doc = new XmlDocument();
    XmlElement m_textElem1;
    XmlElement m_textElem2;
    XmlElement m_textElem3;
    public string TextElement1Content
    {
        get { return m_textElem1.InnerText; }
        set { m_textElem1.InnerText = value; }
    }
    public string TextElement2Content
    {
        get { return m_textElem2.InnerText; }
        set { m_textElem2.InnerText = value; }
    }
    public string TextElement3Content
    {
        get { return m_textElem3.InnerText; }
        set { m_textElem3.InnerText = value; }
    }
    public Form1()
    {
        InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
    }
    private void button2_Click(object sender, EventArgs e)
    {
        doc.Load("C:\\Users\\Fahad\\Documents\\Visual studio 2015\\Projects\\ClassLibrary1\\XMLFile3.xml");
        m_textElem1 = doc.SelectSingleNode("Twittercards/Card1/title") as XmlElement;
        m_textElem2 = doc.SelectSingleNode("Twittercards/Card1/image") as XmlElement;
        m_textElem3 = doc.SelectSingleNode("Twittercards/Card1/description") as XmlElement;
        textBox1.DataBindings.Add("Text", this, "TextElement1Content");
        textBox2.DataBindings.Add("Text", this, "TextElement2Content");
        richTextBox1.DataBindings.Add("Text", this, "TextElement3Content");
    }
    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
    }
    private void textBox1_TextChanged(object sender, EventArgs e)
    {
    }
    private void button3_Click(object sender, EventArgs e)
    {
    }
    XmlDocument xDoc = null;
    private void button4_Click(object sender, EventArgs e)
    {
          OpenFileDialog ofd = new OpenFileDialog();
          if (ofd.ShowDialog() == DialogResult.OK)
           {
            XmlElement root = xDoc.DocumentElement;
            XmlNodeList nodes = root.SelectNodes("Twittercards/Card1");
            xDoc.Load(ofd.FileName);
            foreach (XmlNode node in nodes)
            {
                var node1 = xDoc.SelectSingleNode(@"Twittercards/Card1/title");
                node1.InnerText = textBox1.Text;
                var node2 = xDoc.SelectSingleNode(@"Twittercards/Card1/image");
                node1.InnerText = textBox2.Text;
                var node3 = xDoc.SelectSingleNode(@"Twittercards/Card1/description");
                node1.InnerText = richTextBox1.Text;
                xDoc.Save(ofd.FileName);
                // textBox1.Text = xDoc.SelectSingleNode(@"Twittercards/Card1/title").InnerText;
                //  textBox2.Text = xDoc.SelectSingleNode(@"Twittercards/Card1/image").InnerText;
                //  richTextBox1.Text = xDoc.SelectSingleNode(@"Twittercards/Card1/description").InnerText;
            }
        }
    }
    private void button1_Click(object sender, EventArgs e)
    {
        doc.Save("C:\\Users\\Fahad\\Documents\\Visual studio 2015\\Projects\\ClassLibrary1\\XMLFile3.xml");
    }
    public event PropertyChangedEventHandler PropertyChanged;
    public void NotifyPropertyChanged(string propName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propName));
        }
    }
    private void textBox2_TextChanged(object sender, EventArgs e)
    {
    }
    private void richTextBox1_TextChanged(object sender, EventArgs e)
    {
    }
}
}
The exception from the 'Add button' comes from: XmlElement root = xDoc.DocumentElement;
And the exception from the 'Modify button' comes from:
public string TextElement1Content
{
    get { return m_textElem1.InnerText; }
    set { m_textElem1.InnerText = value; }
}
How can i fix this code to solve my original task? Please help. Thanks
 
     
     
    