Solved

WPF textbox - how to refresh associated textboxes when data changes

Posted on 2015-01-11
3
157 Views
Last Modified: 2015-01-12
Hi
I have three textboxes. one to hold a value, one to hold a percentage and one to hold the answer to a calculation using the value and percentage.
They are all bound to the current view and work correctly on initial load of data.

They are defined like this
<TextBox x:Name="AppLicPer" Grid.Row="1" Grid.Column="2" HorizontalAlignment="Left"  Margin="5" TextWrapping="Wrap" Text="{Binding Path=CurrentlyViewingApplication.AppLicPer}"
 VerticalContentAlignment="Center" TextAlignment="Right" Width="50" />

<TextBox x:Name="AppLicValue" Grid.Row="1" Grid.Column="3" HorizontalAlignment="Left"  Margin="5" TextWrapping="Wrap" Text="{Binding Path=CurrentlyViewingApplication.AppLicValue}"
 VerticalContentAlignment="Center" TextAlignment="Right" Width="50" />

<TextBox x:Name="AppAmountDue" Grid.Row="1" Grid.Column="4" HorizontalAlignment="Left"  Margin="5" TextWrapping="Wrap" Text="{Binding Path=CurrentlyViewingApplication.AppAmountDue}"
 VerticalContentAlignment="Center" TextAlignment="Right" Width="50" />

If I change either the value (AppLicValue) or the percentage (AppLicPer) how do I get the textbox that holds the  answer to refresh (AppAmountDue)?

In winform I would use an after_update event, recalc and write the answer to the textbox.

How can I achieve this in WPF?
Thanks
Andy
0
Comment
Question by:ieg
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 70

Expert Comment

by:Éric Moreau
ID: 40543410
You need to set te Mode on your data binding:

Text="{Binding Path=CurrentlyViewingApplication.AppLicValue, Mode=TwoWay}"
0
 

Author Comment

by:ieg
ID: 40544091
Hi Eric
Thanks for the comment - I use your web site regularly, great source of info

I experimented with your idea. The Mode=TwoWay seems to control the binding of the control itself and not the content of other textboxes
My problem seems to have been caused by my use of sub properties CurrentlyViewingApplication.AppLicPer
Doing this didn't give me any way of controlling what happened when the AppLicPer value changed (only when something on CurrentlyViewingApplication changed and I didn't want this area re calculating every time something changed anywhere on the record.)

So I created a method specifically for this control binding and that allowed me to do a NotifyPropertyChanged on the AppAmountDue control

public decimal? AppLicPer
        {
            get
            {
                if (_CurrentlyViewingApplication != null)
                    return _CurrentlyViewingApplication.AppLicPer;
                else return null;
            }
            set
            {
                _CurrentlyViewingApplication.AppLicPer = value.Value;
                NotifyPropertyChanged("AppAmountDue");
            }

        }

These new MVVM concepts take some getting used to when coming from a traditional winform background
Thanks for your help
0
 
LVL 70

Accepted Solution

by:
Éric Moreau earned 500 total points
ID: 40544261
have you also tried to notify the change of your AppLicPer?

NotifyPropertyChanged("AppLicPer");
NotifyPropertyChanged("AppAmountDue");
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
bound data table problem 2 40
Why use this lambda? 12 62
How to force output to ascii 2 38
Using/Import statement in code doesn't see reference of dll just added. 3 27
We all know that functional code is the leg that any good program stands on when it comes right down to it, however, if your program lacks a good user interface your product may not have the appeal needed to keep your customers happy. This issue can…
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…
A short tutorial showing how to set up an email signature in Outlook on the Web (previously known as OWA). For free email signatures designs, visit https://www.mail-signatures.com/articles/signature-templates/?sts=6651 If you want to manage em…

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question