Binding an Emoticon object to a Grid : Data Binding « Data « Silverlight






Binding an Emoticon object to a Grid

Binding an Emoticon object  to a Grid
    


<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'>
    <Grid x:Name="LayoutRoot" Background="White">        
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
            <RowDefinition />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition></ColumnDefinition>
            <ColumnDefinition></ColumnDefinition>
        </Grid.ColumnDefinitions>

        <TextBlock Text="Name:" />
        <TextBlock Text="Image:" Grid.Column="1" />
        
        <TextBox Text="{Binding Name, Mode=TwoWay}" Grid.Row="1" />     
        <Image x:Name="myImage"  Source="{Binding Icon}" Grid.Row="1" Grid.Column="1" />                    
    </Grid>
</UserControl>


//File: Page.xaml.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

namespace SilverlightApplication3
{
    public partial class MainPage : UserControl
    {
        public MainPage()
        {
            InitializeComponent();

            Emoticon emoticon = new Emoticon("Smiley Face", "http://server.com/smiley.png");
            LayoutRoot.DataContext = emoticon;           
        }
    }

    public class Emoticon : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;

        private string name = string.Empty;
        public string Name
        {
            get { return name; }
            set
            {
                name = value;
                UpdateProperty("Name");
            }
        }

        private BitmapImage icon = null;
        public BitmapImage Icon
        {
            get { return icon; }
            set
            {
                icon = value;
                UpdateProperty("Icon");
            }
        }

        public Emoticon(string _name, string _imageUrl)
        {
            name = _name;
            icon = new BitmapImage(new Uri(_imageUrl));
        }

        public void UpdateProperty(string propertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }
    }
}

   
    
    
    
  








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.Without Binding
9.Text Data Binding
10.Bind to an Existing Object InstanceBind to an Existing Object Instance
11.Binding FontFamily / FontSize value for current ControlBinding FontFamily / FontSize value for current Control
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