Data Binding


デフォルトでは、Mode=OneWay

<Grid x:Name=”ContentPanel” Grid.Row=”1″ Margin=”12,0,12,0″ Loaded=”ContentPanel_Loaded”>
    <StackPanel Name=”stackPanel1″>
        <TextBox Name=”textBox1″ Text=”{Binding TimeString, Mode=TwoWay}”/>
                <Button Content=”Button” Name=”button1″  Click=”button1_Click” />
        <TextBox Name=”textBox2″ Text=”{Binding X, Mode=TwoWay}”/>
    </StackPanel>
</Grid>

using System;
using System.Windows;
using Microsoft.Phone.Controls;
using System.Windows.Threading;
using Microsoft.Devices.Sensors;
using System.ComponentModel;

namespace PhoneApp9
{
    public partial class MainPage : PhoneApplicationPage
    {
        // コンストラクター
        public MainPage()
        {
            InitializeComponent();
        }

        private void ContentPanel_Loaded(object sender, RoutedEventArgs e)
        {
            ContentPanel.DataContext = new MyTime();
        }

        private void button1_Click(object sender, RoutedEventArgs e)
        {
            ((MyTime)ContentPanel.DataContext).TimeString = DateTime.Now.ToLongTimeString();
            ((MyTime)ContentPanel.DataContext).X += 1;
        }
    }

    public class MyTime : INotifyPropertyChanged
    {
        private String _timeString;
        public event PropertyChangedEventHandler PropertyChanged;

        public String TimeString
        {
            get { return _timeString; }
            set
            {
                _timeString = value;
                NotifyPropertyChanged(“TimeString”);
            }
        }

        private double _x;
        public double X
        {
            get { return _x; }
            set
            {
                _x = value;
                NotifyPropertyChanged(“X”);
            }
        }

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

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中


%d人のブロガーが「いいね」をつけました。