 <p>Basically you're trying to change the property value during DataBinding. The problem is that WPF tries to be smart and not listen on property changes raised during DataBinding. This is a well know problem with numerous workarounds: </p> <ul> <li><a href="http://stackoverflow.com/questions/857116/change-value-in-setter-property-when-using-wpf-two-way-databinding">Change value in setter property when using WPF two-way databinding</a></li> <li><a href="http://www.lhotka.net/weblog/DataBindingIssueInWPFWithSolution.aspx" rel="nofollow noreferrer">Data binding issue in WPF: with solution</a></li> </ul> <p>Although MS made some fixes in WPF4.0 see: <a href="http://karlshifflett.wordpress.com/2009/05/27/wpf-4-0-data-binding-change-great-feature/" rel="nofollow noreferrer">WPF 4.0 Data Binding Change (great feature)</a> </p> <p>But I did some quick testing and none of them is working in your case because of the <code>UpdateSourceTrigger=PropertyChanged</code>.</p> <p>However I can came up a very dirt workaround which is "works":</p> <pre><code>public decimal Col1 { get { return _Col1; } set { //Change the property value based on condition _Col1 = value &gt; 100 ? 100 : value; UpdateSum(); //HACK: Simulate that the property change not fired from the setter Dispatcher.CurrentDispatcher .BeginInvoke(new Action(() =&gt; NotifyPropertyChanged("Col1"))); //HACK: Cancel the bindig based on condition if (value &gt; 100) throw new Exception(); } } </code></pre> <p>See it action:</p> <p><img src="https://i.stack.imgur.com/EFhQZ.png" alt="enter image description here"></p> <p>Notice: after typing the third 5 the cursor moves the the beginning of the TextBox and it remains there if you type the next 5.</p> <p>I don't think that the above mention code should be the solution, I've just played a bit. I think you should go with <code>UpdateSourceTrigger=LostFocus</code> and do the binding manually from the textbox <code>TextChanged</code> event... But I'm afraid there is no clean solution for your problem.</p>