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

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

2024.03.25
XML
カテゴリ: C#.NET


`Window.Resources` 内で CollectionSource を設定するためには、通常はデータバインディングを使用して、リソースとしてコレクションを定義します。CollectionSource は WPF の標準的なコントロールではなく、一般的には MVVM パターンで使用されることがあります。一般的な方法は、ViewModel でデータを保持し、そのデータを `Window.Resources` 内で定義されたリソースにバインドすることです。


以下は、ViewModel を使用して CollectionSource を設定する方法の例です。


```xml

<Window x:Class="CollectionSourceExample.MainWindow"

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

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

        xmlns:local="clr-namespace:CollectionSourceExample"

        Title="MainWindow" Height="450" Width="800">

    <Window.Resources>

        <CollectionViewSource x:Key="MyCollectionViewSource" Source="{Binding MyCollection}"/>

    </Window.Resources>

    <Grid>

        <ListBox ItemsSource="{Binding Source={StaticResource MyCollectionViewSource}}"/>

    </Grid>

</Window>

```


```csharp

using System.Collections.ObjectModel;

using System.Windows;


namespace CollectionSourceExample

{

    public partial class MainWindow : Window

    {

        public MainViewModel ViewModel { get; set; }


        public MainWindow()

        {

            InitializeComponent();

            ViewModel = new MainViewModel();

            DataContext = ViewModel;

        }

    }


    public class MainViewModel

    {

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


        public MainViewModel()

        {

            MyCollection = new ObservableCollection<string>

            {

                "Item 1",

                "Item 2",

                "Item 3",

                "Item 4",

                "Item 5"

            };

        }

    }

}

```


この例では、`MainViewModel` クラスが `MyCollection` という名前の `ObservableCollection<string>` プロパティを持っています。`Window` クラスでこの `MainViewModel` のインスタンスを作成し、`DataContext` プロパティにバインドします。そして、XAML 内の `CollectionViewSource` の `Source` プロパティに `MyCollection` をバインドします。その後、`ListBox` の `ItemsSource` プロパティに `CollectionViewSource` をバインドします。


このようにして、ViewModel でデータを保持し、XAML ファイルで CollectionViewSource を使用してデータにアクセスすることができます。






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

Last updated  2024.03.25 06:01:06


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

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