SSブログ

初歩:INotifyPropertyChangedの実装例 [- INotifyPropertyChanged]

INotifyPropertyChangedの実装例。

例:
データクラスの値を画面のTextBlockに表示する。
ボタンを押下すると、データクラスのプロパティが更新されると同時に、BindingされたTextBlockに"abc"が表示される。



以下、サンプルソース


// データクラス ///////////////////////////////////////////////////////////////////////////
// DataManager.cs


using System.ComponentModel;    // INotifyPropertyChanged

public class DataManager : INotifyPropertyChanged
{
    private string _addr;

    public string Address
    {
        get
        {
            return _addr;
        }
        set
        {
            _addr = value;
            OnPropertyChanged("Address");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected void OnPropertyChanged(string propName)
    {

        PropertyChangedEventHandler handler = this.PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(propName));
        }
    }
}

// 画面 ///////////////////////////////////////////////////////////////////////////
//  MainWindow.xaml.cs

public partial class MainWindow : Window
{
    private DataManager dm;

    public MainWindow()
    {
        InitializeComponent();

        dm = new DataManager();
        DataContext = dm;
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        dm.Address = "abc";
    }

//  MainWindow.xaml
<TextBlock x:Name="tbox" Text="{Binding Address}" HorizontalAlignment="Left" Height="25" Margin="44,164,0,0" VerticalAlignment="Top" Width="139"/>



nice!(0) 
共通テーマ:パソコン・インターネット

nice! 0

OpenFileDialogのUsing..型変換 ブログトップ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。