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

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

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

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


以下は、C# WPFで`DataTable`を`ObservableCollection`に変換し、`DataGrid`に表示するサンプルコードです。


```csharp

using System.Collections.ObjectModel;

using System.Data;

using System.Windows;


namespace WpfApp

{

    public partial class MainWindow : Window

    {

        public ObservableCollection<DataRow> DataRows { get; set; }


        public MainWindow()

        {

            InitializeComponent();

            LoadData();

        }


        private void LoadData()

        {

            // サンプルの DataTable を作成

            DataTable dataTable = new DataTable();

            dataTable.Columns.Add("ID", typeof(int));

            dataTable.Columns.Add("Name", typeof(string));

            dataTable.Rows.Add(1, "John");

            dataTable.Rows.Add(2, "Alice");

            dataTable.Rows.Add(3, "Bob");


            // DataTable の各行を ObservableCollection<DataRow> に変換

            DataRows = new ObservableCollection<DataRow>();

            foreach (DataRow row in dataTable.Rows)

            {

                DataRows.Add(row);

            }


            // DataGrid にデータをバインド

            dataGrid.ItemsSource = DataRows;

        }

    }

}

```


XAML側では、DataGridの列を自動生成するためにAutoGenerateColumnsプロパティをtrueに設定します。


```xml

<Window x:Class="WpfApp.MainWindow"

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

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

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

    <Grid>

        <DataGrid x:Name="dataGrid" AutoGenerateColumns="True"/>

    </Grid>

</Window>

```


このコードでは、サンプルの`DataTable`を作成し、その各行を`ObservableCollection<DataRow>`に変換しています。その後、`DataGrid`にこの`ObservableCollection`をバインドしています。これにより、`DataGrid`に`DataTable`のデータが表示されます。






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

Last updated  2024.06.09 14:00:39



© Rakuten Group, Inc.