525598 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

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

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

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


以下は、C# WPF アプリケーションの MVVM (Model-View-ViewModel) パターンの基本的なサンプルコードです。この例では、ビュー (View)、ビューモデル (ViewModel)、およびモデル (Model) を実装します。


まず、モデルを定義します:


```csharp

// Model

public class Person

{

    public string FirstName { get; set; }

    public string LastName { get; set; }

}

```


次に、ビューモデルを定義します:


```csharp

// ViewModel

using System.Collections.ObjectModel;

using System.ComponentModel;


public class MainViewModel : INotifyPropertyChanged

{

    public event PropertyChangedEventHandler PropertyChanged;


    private ObservableCollection<Person> _people;

    public ObservableCollection<Person> People

    {

        get { return _people; }

        set

        {

            _people = value;

            OnPropertyChanged("People");

        }

    }


    public MainViewModel()

    {

        // データの初期化などを行う

        People = new ObservableCollection<Person>

        {

            new Person { FirstName = "John", LastName = "Doe" },

            new Person { FirstName = "Jane", LastName = "Smith" }

        };

    }


    protected virtual void OnPropertyChanged(string propertyName)

    {

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

    }

}

```


最後に、ビューを定義します:


```xaml

<!-- View (MainWindow.xaml) -->

<Window x:Class="MVVMSample.MainWindow"

        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"

        xmlns:local="clr-namespace:MVVMSample"

        mc:Ignorable="d"

        Title="MVVM Sample" Height="450" Width="800">

    <Grid>

        <ListBox ItemsSource="{Binding People}">

            <ListBox.ItemTemplate>

                <DataTemplate>

                    <StackPanel>

                        <TextBlock Text="{Binding FirstName}" />

                        <TextBlock Text="{Binding LastName}" />

                    </StackPanel>

                </DataTemplate>

            </ListBox.ItemTemplate>

        </ListBox>

    </Grid>

</Window>

```


これで、ビュー、ビューモデル、およびモデルが定義されました。ビューとビューモデルはデータバインディングを使用して接続されており、ビューモデルはモデルからデータを取得し、ビューに提供します。この例では、`ListBox` を使用して `Person` オブジェクトの一覧を表示しています。


また、ビューモデルは `INotifyPropertyChanged` インターフェースを実装しており、プロパティの変更を通知することができます。


最後に、アプリケーションの `App.xaml.cs` ファイルでビューモデルをビューに関連付けます:


```csharp

// App.xaml.cs

using System.Windows;


namespace MVVMSample

{

    public partial class App : Application

    {

        protected override void OnStartup(StartupEventArgs e)

        {

            base.OnStartup(e);


            MainViewModel viewModel = new MainViewModel();

            MainWindow view = new MainWindow();

            view.DataContext = viewModel;

            view.Show();

        }

    }

}

```


これで、MVVM パターンを使用して基本的な WPF アプリケーションが構築されました。






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

Last updated  2024.04.07 13:39:08



© Rakuten Group, Inc.