「東雲 忠太郎」の平凡な日常のできごと

「東雲 忠太郎」の平凡な日常のできごと

2024.03.17
XML
カテゴリ: C#.NET


INotifyPropertyChanged インターフェースは、WPF アプリケーションにおいて、データの変更を通知するために使用されます。以下に、INotifyPropertyChanged を実装した簡単なサンプルコードを示します。


まず、INotifyPropertyChanged インターフェースを実装するための ViewModel クラスを作成します。


```csharp

using System.ComponentModel;


namespace WpfINotifyPropertyChangedExample

{

    public class PersonViewModel : INotifyPropertyChanged

    {

        private string name;


        public string Name

        {

            get { return name; }

            set

            {

                if (name != value)

                {

                    name = value;

                    OnPropertyChanged("Name");

                }

            }

        }


        public event PropertyChangedEventHandler PropertyChanged;


        protected virtual void OnPropertyChanged(string propertyName)

        {

            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));

        }

    }

}

```


次に、WPF の XAML ファイルでこの ViewModel をバインドします。


```xml

<Window x:Class="WpfINotifyPropertyChangedExample.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:local="clr-namespace:WpfINotifyPropertyChangedExample"

        Title="INotifyPropertyChanged Example" Height="200" Width="300">

    <Grid>

        <TextBox Text="{Binding Name, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center" VerticalAlignment="Center" Width="120"/>

        <Label Content="{Binding Name}" HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,30,0,0"/>

    </Grid>

</Window>

```


そして、Code-behind ファイルで ViewModel を設定します。


```csharp

using System.Windows;


namespace WpfINotifyPropertyChangedExample

{

    public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

            DataContext = new PersonViewModel();

        }

    }

}

```


このコードでは、TextBox に入力されたテキストが Name プロパティにバインドされ、その値が変更されると自動的にラベルに反映されるようになっています。INotifyPropertyChanged を実装することで、データの変更が自動的にUIに反映されるようになります。






お気に入りの記事を「いいね!」で応援しよう

Last updated  2024.03.17 09:46:13


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

© Rakuten Group, Inc.
X
Create a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: