C#数据绑定

C#代码

using System;
using System.Collections.Generic;
using System.Linq;
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.Navigation;
using System.Windows.Shapes;
//
using System.ComponentModel;


namespace imgButton
{
    /// <summary>
    /// MainWindow.xaml 的交互逻辑
    /// </summary>
    public partial class MainWindow : Window
    {
        int i = 0;
        MyData m_Data = new MyData();


        public MainWindow()
        {
            InitializeComponent();
            //建立绑定
            Binding myBind = new Binding();
            myBind.Source = m_Data;
            myBind.Path = new PropertyPath("Text");
            textBlock1.SetBinding(TextBlock.TextProperty, myBind);
        }


        private void button1_Click(object sender, RoutedEventArgs e)
        {
            m_Data.Text = i.ToString();
            i++;
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            button1.DataContext = m_Data;
            label1.DataContext = m_Data;
            m_Data.Text = "你好";
        }
    }
    /// <summary>
    /// 数据类
    /// </summary>
    public class MyData:INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        private String m_Text;
        public String Text
        {
            get
            {
                return m_Text;
            }
            set
            {
                m_Text = value;
                
                if (PropertyChanged != null)
                {
                    PropertyChanged(this,new PropertyChangedEventArgs("Text"));
                }
            }
        }
    }
}

XAML代码

<Window x:Class="imgButton.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:imgButton"
        Title="MainWindow" Height="350" Width="525" Loaded="Window_Loaded">
    <Grid>
        <Image Height="150" HorizontalAlignment="Left" Margin="148,71,0,0" Name="image1" Stretch="Fill" VerticalAlignment="Top" Width="200" />
        <Label
            Content="{Binding Path=Text}"
            Height="28" HorizontalAlignment="Left" Margin="225,137,0,0" Name="label1" VerticalAlignment="Top" />
        <Button 
            Content="{Binding Path=Text}"
            Height="23" HorizontalAlignment="Left" Margin="208,261,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
        <TextBlock  Name="textBlock1" Height="23" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="240,103,0,0"/>
    </Grid>
</Window>

猜你喜欢

转载自blog.csdn.net/Zhangchen9091/article/details/46510611