I am writing the test application in Windows Forms. It has a simple form with TextBox and needs to implement DataBinding. I have implemented the class FormViewModel to hold my data, and have 1 class for my business data — TestObject.

Business Data object:

public class TestObject : INotifyPropertyChanged
{
    private string _testPropertyString;
    public string TestPropertyString
    {
        get
        {
            return _testPropertyString;
        }
        set
        {
            if (_testPropertyString != value)
            {
                _testPropertyString = value;
                RaisePropertyChanged("TestPropertyString");
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    public void RaisePropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

ViewModel:

public class FormViewModel : INotifyPropertyChanged
{
    private TestObject _currentObject;
    public TestObject CurrentObject
    {
        get { return _currentObject; }
        set
        {
            if (_currentObject != value)
            {
                _currentObject = value;

                RaisePropertyChanged("CurrentObject");
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    public void RaisePropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
            PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

Property:

private FormViewModel _viewModel;
public FormViewModel ViewModel
{ 
    get
    {
        if (_viewModel == null)
            _viewModel = new FormViewModel();

        return _viewModel;
    }
}

So now I'm trying to bind my data to TextBox like this:

TextBox.DataBindings.Add("
Edit
Report