ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
C# : テキストファイル(CSV)入力 : DataGrid に表示
日時: 2017/05/23 13:07
名前: lightbox




using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Data.Odbc;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication1 {
	/// <summary>
	/// MainWindow.xaml の相互作用ロジック
	/// </summary>
	public partial class MainWindow : Window {

		private ObservableCollection<Syain> syain_list = null;

		public MainWindow() {
			InitializeComponent();
		}

		private void Button_Click_1(object sender, RoutedEventArgs e) {
			Console.WriteLine("クリックされました");
			Console.WriteLine(Directory.GetCurrentDirectory());

			FileStream fs = new FileStream(@"..\..\lib\data.csv", FileMode.Open);
			StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("shift_jis"));

			string line;
			string[] data;
			Syain syain;
			syain_list = new ObservableCollection<Syain>();

			while (sr.Peek() >= 0) {
				// 一行取得
				line = sr.ReadLine();
				// 配列に変換
				data = line.Split(",".ToCharArray());

				// バインド用のクラスにセット
				syain = new Syain();
				syain.社員コード = data[0];
				syain.氏名 = data[1];
				// ObservableCollection に追加
				syain_list.Add(syain);

			}

			// DataGrid にバインド
			dataGrid.DataContext = syain_list;

			fs.Close();

			// DataGrid にバインドした ObservableCollection 内のデータ
			for (int i = 0; i < syain_list.Count; i++ ) {
				Debug.WriteLine(syain_list[i].社員コード + "|" + syain_list[i].氏名);
			}

		}

		// DataGrid をダブルクリックした時の行データの取得
		private void dataGrid_MouseDoubleClick(object sender, MouseButtonEventArgs e) {
			int row = dataGrid.SelectedIndex;
			if ( row >= 0 ) {
				Syain syain = (Syain)dataGrid.Items.GetItemAt(row);
				Debug.WriteLine(syain.社員コード + "|" + syain.氏名);
			}
		}

	}
}
メンテナンス

Syain クラス ( No.1 )
日時: 2017/05/23 12:50
名前: lightbox


日時: 2017/05/23 12:50
名前: lightbox
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WpfApplication1 {
	class Syain {
		public string 社員コード { get; set; }
		public string 氏名 { get; set; }
	}
}

このアーティクルの参照用URLをクリップボードにコピー メンテナンス
画面定義 ( No.2 )
日時: 2017/05/23 13:05
名前: lightbox


タイトルをクリックするとソートされます
<Window
	x:Class="WpfApplication1.MainWindow"
	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
	Title="MainWindow"
	Height="430.769"
	Width="581.953">
	<Grid>
		<Button
			Content="Button"
			HorizontalAlignment="Left"
			Height="24"
			Margin="27,29,0,0"
			VerticalAlignment="Top"
			Width="122"
			Click="Button_Click_1" />
		<DataGrid
			x:Name="dataGrid"
			HorizontalAlignment="Left"
			Height="288"
			Margin="27,78,0,0"
			VerticalAlignment="Top"
			Width="516"
			ItemsSource="{Binding}"
			IsReadOnly="True"
			MouseDoubleClick="dataGrid_MouseDoubleClick" />

	</Grid>
</Window>

このアーティクルの参照用URLをクリップボードにコピー メンテナンス