Raise the PropertyChanged event : Event « Windows Presentation Foundation « C# / CSharp Tutorial






<Window x:Class="WpfApplication1.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="WPF WpfApplication1" Height="180" Width="260">
    <StackPanel>
        <TextBlock Text="Last Name" VerticalAlignment="Center"/>
        <TextBox Text="{Binding Path=LastName, Mode=TwoWay}"/>
        
        <TextBlock Text="Age" VerticalAlignment="Center"/>
        <TextBox Text="{Binding Path=Age, Mode=TwoWay}"/>
        
        <TextBlock Text="Occupation" VerticalAlignment="Center"/>
        <ComboBox x:Name="cboOccupation" IsEditable="False" HorizontalAlignment="Left"
            Text="{Binding Path=Occupation, Mode=TwoWay}"
            Margin="4" Width="140">
             <ComboBoxItem>Student</ComboBoxItem>
             <ComboBoxItem>Skilled</ComboBoxItem>
             <ComboBoxItem>Professional</ComboBoxItem>
        </ComboBox>
                  
        <TextBlock Margin="4" Text="Description" FontWeight="Bold" FontStyle="Italic" VerticalAlignment="Center"/>
        <TextBlock Margin="4" Text="{Binding Path=Description, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center"/>
        
    </StackPanel>
</Window>
//File:Window.xaml.cs
using System.Windows;
using System.ComponentModel;
namespace WpfApplication1
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
            
            this.DataContext = new Employee(){
                        LastName = "B",
                        Age = 26,
                        Occupation = "Professional"
            };
        }
    }

    public class Employee : INotifyPropertyChanged
    {
        private string lastName;
        private int age;
        private string occupation;

        public string LastName
        {
            get
            {
                return lastName;
            }
            set
            {
                if(this.lastName != value)
                {
                    this.lastName = value;
                    OnPropertyChanged("LastName");
                    OnPropertyChanged("Description");
                }
            }
        }

        public int Age
        {
            get
            {
                return age;
            }
            set
            {
                if(this.age != value)
                {
                    this.age = value;
                    OnPropertyChanged("Age");
                    OnPropertyChanged("Description");
                }
            }
        }
        
        public string Occupation
        {
            get { return occupation; }
            set
            {
                if (this.occupation != value)
                {
                    this.occupation = value;
                    OnPropertyChanged("Occupation");
                    OnPropertyChanged("Description");
                }
            }
        }

        public string Description
        {
            get
            {
                return string.Format("{0} {1}, ({2})", 
                                     lastName, age, occupation);
            }
        }


        public event PropertyChangedEventHandler PropertyChanged;

        private void OnPropertyChanged(string propertyName)
        {
            if(this.PropertyChanged != null)
            {

                this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }

    }
}
WPF Raise The Property Changed Event








24.119.Event
24.119.1.Cast event sender to a controlCast event sender to a control
24.119.2.Press F1 to get helpPress F1 to get help
24.119.3.Raise the PropertyChanged eventRaise the PropertyChanged event
24.119.4.Get the event sender nameGet the event sender name
24.119.5.Use Ellipse event delegateUse Ellipse event delegate
24.119.6.Halting event routing with HandledHalting event routing with Handled
24.119.7.Use Ellipse.AddHandler to add handler to Ellipse objectsUse Ellipse.AddHandler to add handler to Ellipse objects
24.119.8.Get event sender from eventGet event sender from event
24.119.9.Handle the ContentRendered eventHandle the ContentRendered event
24.119.10.Find source element of an element in event handler by casintFind source element of an element in event handler by casint
24.119.11.Add an event handler to an element using codeAdd an event handler to an element using code
24.119.12.Handles the Click event on the UniformGridHandles the Click event on the UniformGrid
24.119.13.Mark the text control as being changed to prevent any text content or selection changed eventsMark the text control as being changed to prevent any text content or selection changed events
24.119.14.Check handler event senderCheck handler event sender
24.119.15.Generate Click Events Repeatedly While a Button Is ClickedGenerate Click Events Repeatedly While a Button Is Clicked
24.119.16.Raise the ScrollChanged event of a ScrollViewerRaise the ScrollChanged event of a ScrollViewer
24.119.17.Event firing sequenceEvent firing sequence
24.119.18.ToolBar and event handlerToolBar and event handler
24.119.19.Cancel event by setting CanExecute and Handled to falseCancel event by setting CanExecute and Handled to false
24.119.20.Activated and Deactivated events monitors the activation status of an application.Activated and Deactivated events monitors the activation status of an application.
24.119.21.Event sender, event source and event original sourceEvent sender, event source and event original source