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

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

2024.03.18
XML
カテゴリ: C#.NET


`ObservableCollection`は、WPFアプリケーションでリストやコレクションをデータバインディングする際に非常に便利です。特に、データが動的に変更される可能性がある場合や、データの変更をUIにリアルタイムで反映したい場合によく使用されます。以下に、`ObservableCollection`がよく使用される例を示します。


1. **データグリッド内のリスト表示**:

   WPFの`DataGrid`コントロールは、データを表形式で表示するための強力なコントロールです。`ObservableCollection`を使用してデータをバインドすることで、データの変更がリアルタイムに反映されます。例えば、顧客リストや注文履歴などのデータを表示する場合に便利です。


2. **リストボックスまたはコンボボックスの項目リスト**:

   リストボックスやコンボボックスなどのコントロールでは、`ItemsSource`プロパティを使用してアイテムのリストをバインドします。`ObservableCollection`を使用することで、リスト内のアイテムが動的に変更された場合に、コントロールが自動的に更新されます。


3. **動的なUI要素の追加と削除**:

   UIに動的な要素を追加または削除する場合にも、`ObservableCollection`が役立ちます。例えば、ダイナミックなメニューやタブの項目を管理する際に使用されます。要素が追加されたり削除されたりするたびに、UIが自動的に更新されます。


4. **MVVMパターンでのビューモデルのプロパティ**:

   MVVM(Model-View-ViewModel)パターンでは、ビューモデルがUIの状態を表します。ビューモデル内のプロパティを`ObservableCollection`として定義することで、データの変更をUIに自動的に通知できます。


以下は、`ObservableCollection`がリスト表示やデータの動的な更新にどのように使用されるかを示す簡単な例です。


```csharp

using System.Collections.ObjectModel;

using System.ComponentModel;

using System.Windows;


namespace ObservableCollectionExample

{

    public partial class MainWindow : Window

    {

        public ObservableCollection<string> Items { get; set; }


        public MainWindow()

        {

            InitializeComponent();

            Items = new ObservableCollection<string>

            {

                "Item 1",

                "Item 2",

                "Item 3"

            };

            DataContext = this;

        }


        private void AddItemButton_Click(object sender, RoutedEventArgs e)

        {

            Items.Add("New Item");

        }


        private void RemoveItemButton_Click(object sender, RoutedEventArgs e)

        {

            if (Items.Count > 0)

            {

                Items.RemoveAt(Items.Count - 1);

            }

        }

    }

}

```


```xml

<Window x:Class="ObservableCollectionExample.MainWindow"

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

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

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

    <Grid>

        <ListBox ItemsSource="{Binding Items}" HorizontalAlignment="Center" VerticalAlignment="Center" Width="150" Height="100"/>

        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" VerticalAlignment="Bottom">

            <Button Content="Add Item" Click="AddItemButton_Click" Margin="5"/>

            <Button Content="Remove Item" Click="RemoveItemButton_Click" Margin="5"/>

        </StackPanel>

    </Grid>

</Window>

```


この例では、`ObservableCollection`を使用してリストボックスの項目をバインドし、ボタンをクリックするとリストが動的に更新されます。






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

Last updated  2024.03.18 07:33:28


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

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