Without Binding : Data Binding « Data « Silverlight






Without Binding

  

<UserControl x:Class='SilverlightApplication3.MainPage'
    xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' 
    xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
    xmlns:d='http://schemas.microsoft.com/expression/blend/2008' 
    xmlns:mc='http://schemas.openxmlformats.org/markup-compatibility/2006' 
    mc:Ignorable='d' 
    d:DesignWidth='640' 
    d:DesignHeight='480'>
    <StackPanel>
    <TextBlock>Name:</TextBlock>
    <TextBox Name="nameTextBox"/>
    <TextBlock>Age:</TextBlock>
    <TextBox Name="ageTextBox"/>
    <Button Name="birthdayButton">Birthday</Button>
  </StackPanel>
</UserControl>
//File:Window.xaml.cs
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.ComponentModel;

namespace SilverlightApplication3 {
  public class Employee : INotifyPropertyChanged {
    public event PropertyChangedEventHandler PropertyChanged;
    protected void Notify(string propName) {
      if( this.PropertyChanged != null ) {
        PropertyChanged(this, new PropertyChangedEventArgs(propName));
      }
    }

    string name;
    public string Name {
      get { return this.name; }
      set {
        this.name = value;
        Notify("Name");
      }
    }

    int age;
    public int Age {
      get { return this.age; }
      set {
        this.age = value;
        Notify("Age");
      }
    }

    public Employee() { }
    public Employee(string name, int age) {
      this.name = name;
      this.age = age;
    }
  }

  public partial class MainPage : UserControl {
    Employee emp = new Employee("Tom", 11);
    public MainPage() {
      InitializeComponent();
      this.nameTextBox.Text = emp.Name;
      this.ageTextBox.Text = emp.Age.ToString();
      emp.PropertyChanged += emp_PropertyChanged;
      this.nameTextBox.TextChanged += nameTextBox_TextChanged;
      this.ageTextBox.TextChanged += ageTextBox_TextChanged;
      this.birthdayButton.Click += birthdayButton_Click;
    }

    void emp_PropertyChanged(object sender, PropertyChangedEventArgs e) {
      switch( e.PropertyName ) {
        case "Name":
        this.nameTextBox.Text = emp.Name;
        break;

        case "Age":
        this.ageTextBox.Text = emp.Age.ToString();
        break;
      }
    }

    void nameTextBox_TextChanged(object sender, TextChangedEventArgs e) {
      emp.Name = nameTextBox.Text;
    }

    void ageTextBox_TextChanged(object sender, TextChangedEventArgs e) {
      int age = 0;
      if( int.TryParse(ageTextBox.Text, out age) ) {
        emp.Age = age;
      }
    }

    void birthdayButton_Click(object sender, RoutedEventArgs e) {
      ++emp.Age;
      Console.WriteLine(emp.Name);
      Console.WriteLine(emp.Age);
    }
  }
}

   
    
  








Related examples in the same category

1.Binding Application Data to the UIBinding Application Data to the UI
2.Receiving Change Notifications for Bound Data
3.Validating Input for Bounded Data
4.DataBinding and INotifyPropertyChanged
5.Implementing Data Binding in Silverlight ApplicationsImplementing Data Binding in Silverlight Applications
6.Bind to a collection
7.Add a value converter to a binding using XAML
8.Text Data Binding
9.Bind to an Existing Object InstanceBind to an Existing Object Instance
10.Binding FontFamily / FontSize value for current ControlBinding FontFamily / FontSize value for current Control
11.Binding an Emoticon object to a GridBinding an Emoticon object  to a Grid
12.Binding a collection of Emoticon objects to a ListBox through the ItemsSource propertyBinding a collection of Emoticon objects to a ListBox through the ItemsSource property