wpf c# databinding on object

Posted by Enriquev on Stack Overflow See other posts from Stack Overflow or by Enriquev
Published on 2010-03-31T17:49:51Z Indexed on 2010/03/31 17:53 UTC
Read the original article Hit count: 388

Filed under:
|
|
|

Hello, say I have this control:

public partial class bloc999 : UserControl
{
 bloc999Data mainBlock = new bloc999Data();

 public bloc999()
 {
  InitializeComponent();
  mainBlock.txtContents = "100";

  base.DataContext = mainBlock;
 }
}

in the xaml:

    <TextBox Margin="74,116,106,0" Name="txtContents" 
Text="{Binding Path=txtContents, UpdateSourceTrigger=PropertyChanged,Mode = TwoWay}" />
    <TextBox Margin="74,145,106,132" Name="txtContents2" 
Text="{Binding Path=txtContents2, UpdateSourceTrigger=PropertyChanged,Mode = TwoWay}" />

Then I have this class:

public class bloc999Data : INotifyPropertyChanged
    {
     string _txtContents;
     string _txtContents2;

     public event PropertyChangedEventHandler PropertyChanged;

     void NotifyPropertyChanged(string propName)
     {
            if (this.PropertyChanged != null)
                this.PropertyChanged(
                    this, new PropertyChangedEventArgs(propName));
     }

     public string txtContents2
     {
            get
            {
              return this._txtContents2;
            }
            set
            {
                if (int.Parse(value) > int.Parse(this._txtContents))
                {
                    this._txtContents2 = "000";
                }
                else
                    this._txtContents2 = value;

                NotifyPropertyChanged("txtContents2");
            }
        }

        public string txtContents 
        {
            get
            {
                return this._txtContents;
            }
            set 
            {
                this._txtContents = value;
                NotifyPropertyChanged("txtContents");
            } 
        }
    }

Ok now say I have A button on the form and I do this in the code:

mainBlock.txtContents2 = "7777777";

It puts 000 in the textbox, but If i just type in manually, in the textbox (txtContents2, the setter code is called but for some reason the textboxes value does not change, the instance value does change. help?

© Stack Overflow or respective owner

Related posts about wpf

Related posts about databind