nprogram’s blog

気ままに、プログラミングのトピックについて書いていきます

C#

AngleSharpを用いて、Webスクレイピングをしましょう[AngleSharp]

C#

はじめに Webスクレイピングとは、ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと。 ウェブ・クローラーあるいはウェブ・スパイダーとも呼ばれる。(wikipedia参照) Webスクレイピングに、Html Agility Packではなく、今回は、AngleSharp…

WPFで登録・削除可能なリストを作成する [C#][WPF][Prism][MVVM]

はじめに WPFで登録・削除可能なリストを作成します。 MVVM(Model・View・ViewModel)のプロジェクトにしました。 MVVMの形にするため、以下のようにフォルダ分けしています。 Modelsフォルダ ViewModelsフォルダ Viewsフォルダ Prismでは、以下の機能を使用…

SQLiteを用いて、WPFで登録・削除可能なリストを作成する[C#][WPF][Prism][MVVM][SQLite]

はじめに SQLiteを用いて、WPFで登録・削除可能なリストを作成します。 大量のデータを永続化させるには、データベースを用いると楽です。 SQLiteを用いてデータを永続化させる方法について説明したいと思います。 SQLiteを用いたサンプルアプリ外観 サンプ…

C#からC++のDLLを呼び出す (構造体編) [C#]

C#

はじめに 以下の場合も、実現可能です。 C++のDLLのAPIに対して、構造体のデータを渡す場合 C++のDLLのAPIから、構造体のデータを受け取る場合 環境 IDE : Visual Studio Community 2017 (Version 15.7.1) コード #include <string> #ifdef __cplusplus #define DLLE</string>…

C#からC++のDLLを呼び出す [C#]

C#

はじめに 過去に作成したC++の関数(API)をC#から呼び出したい場合があると思います。 その場合は、C++のプロジェクトをDLLにして、C#からAPIを呼び出すことが可能です。 ただし、C#(マネージ・コード)の変数とC++(アンマネージ・コード)の変数は、 メモ…

WPFで画面遷移させよう [C#][WPF]

C#

はじめに 以下のサイトがおすすめです。 参考サイト sourcechord.hatenablog.com WPFサンプル:Hyperlink http://gushwell.ldblog.jp/archives/52279481.html

ルーティングイベントの学習 [C#][WPF]

C#

ルーティングイベントとは 観点を機能に置いた場合、イベントを生成したオブジェクト上だけでなく、要素ツリー内の複数のリスナー上でハンドラーを呼び出すことができる種類のイベント 観点を実装に置いた場合、ルーティング イベントは、RoutedEvent クラス…

WPFの依存関係プロパティが難しいので、学習中 [C#][WPF]

C#

以下のページが参考になりそう。 DependencyProperty(依存関係プロパティ) tawamuredays.blog.fc2.com garafu.blogspot.jp

WPFで、自作イベントの作り方 [C#][WPF]

C#

はじめに WPFで、自作イベントを作成する方法を調べてみました。 参考サイト 以下のサイトを参考にさせていただきました。 方法 : カスタム ルーティング イベントを作成する https://docs.microsoft.com/ja-jp/dotnet/framework/wpf/advanced/how-to-create…

WPFで簡単なUserControlの作り方 [C#][WPF]

C#

UserControlは便利 繰り返し使用するUI部品は、UserControlにして何度も使用できるようにしたほうが便利です。 例えば、MainWindow.xamlを以下のように記載した場合、同じような表記が繰り返し発生します。 これをUserControlに置き換えます。

ReactivePropertyが便利すぎてとても助かる [C#][WPF]

C#

ReactivePropertyの使い方を学習していきます 画面 コード [MainWindowViewModel.cs] using Reactive.Bindings; using System; using System.Linq; using System.Reactive.Linq; namespace ReactivePropertySample { class MainWindowViewModel { public Rea…

簡単なWPFアプリケーションを作ります [C#][WPF][Prism][MVVM]

WPF/C#/Prismで、簡単なWPFアプリケーションを作ります 以下のサイトにも記載があるように、WPFアプリケーションでMVVMのアプリケーションを作成するのは難しいと思います。 そのため、PrismというMVVM基盤ライブラリを使用します。 qiita.com 本アプリケー…

Google Test導入方法 [VS2017] [Cmake] [C++]

環境について 以下の環境で、Google Testを使用してみます。 Windows 10 Visual Studio 2017 Community Cmake 3.10.2 C++ なお、Visual Studio 2017 バージョン 15.5 以降では、Google Test が C++ ワークロードでのデスクトップ開発の既定のコンポーネント…

UIスレッド以外から、UIスレッドのコレクションにアクセスする方法 [C#]

C#

UIスレッド以外から、UIスレッドのコレクションにアクセスすると、エラーとなり、アクセスできない問題が発生します。 以下のサイトに、問題解決方法が記載してありました。 blog.okazuki.jp sourcechord.hatenablog.com

WPFで登録と削除が可能なリストを作成します [C#][WPF]

C#

はじめに ObservableCollectionを使用して、登録と削除が可能なリストを持つアプリを作成します。 アプリの見た目 アプリには、登録、削除、全削除ボタンがあります。 名前と連絡先に文字列を入れて登録ボタンを押すと、データが登録されます。 リストの項目…

WPFでGridコントロール [C#][WPF]

C#

Gridコントロール Gridコントロールを使えば、コントロールの配置を簡単に決めることできます。 3行、3列のGridを作成する場合は以下のように指定します。

ObservableCollectionを使用した簡単なバインディング [C#][WPF]

C#

ObservableCollectionを使用すれば、簡単にバインディングを実現できます。 以下のサイトを参考にさせていただきました。 www.youtube.com 実行結果 コード [Palyer.cs] namespace WpfApp3 { public class Player { public int Id { get; set; } public stri…

WPF コレクションのデータバインディングを学習します [C#][WPF]

C#

以下のページを参考にして、WPFのコレクションのデータバインディングを学習していきます。 http://technical.live-on.net/archives/1987 inuinuwanwanilovecat.seesaa.net

WPF ICommand学習 [C#][WPF]

C#

よいページが見つかったので、紹介させていただきたいと思います。 WPFサンプル:ICommand インターフーイスを実装してカスタムコマンドを作成する http://gushwell.ldblog.jp/archives/52321430.html yoshinorin.net

INotifyPropertyChangedを使った簡単なWPFサンプル例 (MVVMパターンに修正) [C#][WPF]

C#

サンプル説明 前回のコードをMVVMに直します。アプリ表示は、同一になります。 プロジェクト構成では、前回と比較して、ViewModel.csファイルを追加しました。 コード修正が入るファイルは、MainWindow.xaml.csファイルとMainWindow.xamlです。 前回と比較し…

INotifyPropertyChangedを使った簡単なWPFサンプル例 [C#][WPF]

C#

サンプルコードについて INotifyPropertyChangedを使って、プロパティ値が変更されたことをViewに通知するのみのサンプルコードです。 簡単化するため、ViewとModelしかありません。 BindableBaseクラスは、INotifyPropertyChangedインタフェースを継承して…

簡単なWPFアプリケーションを作成しましょう (株価を取得するアプリ) [C#][WPF]

C#

はじめに 簡単なWPFサンプルアプリケーションを作成します。 本サンプルでは、Html Agility Packというライブラリを使用するため、あらかじめプロジェクトにインストールしてください。 方法は以下のページにあります。 www.atmarkit.co.jp プロジェクト名は…

C#で、非同期処理学習 [C#]

C#

非同期処理を使う必要性が発生したので、学習用のサイトを記録しておきます。 ufcpp.net www.kekyo.net

C# オブジェクト指向設計の学習 [C#]

C#

メソッドでパラメータを渡すのではなく、オブジェクト生成時に必要なデータをすべて準備する データと、そのデータを使うロジックは、一つのクラスにまとめる 一つ一つのオブジェクトの役割は単純にする 複雑な処理は、オブジェクトを組み合わせて実現する

C# シングルトンパターンの学習 [C#]

C#

C#で簡単なシングルトンパターンを記載してみます。 using System; namespace ConsoleApp2 { class Program { static void Main(string[] args) { SingletonClass instance = SingletonClass.Instance; SingletonClass instance2 = SingletonClass.Instance;…

C#でファイルから一行ずつ読み出し、正規表現を使って文字列を検索し、抽出する [C#]

C#

C#で、ファイルから一行ずつ読み出し、文字列を検索し、抽出する方法はいくつかありますが、正規表現を使う方法が一般的です。 以下に、ファイルから一行ずつ読み出し、正規表現を使って文字列を検索し、抽出するプログラムを記載します。 D:\test.txtに以下…

WPF MVVM基礎の学習 [C#][WPF]

C#

INotifyPropertyChangedインタフェースは、プロパティ値が変更されたことをクライアントに通知するインタフェースです。 ICommandインタフェースは、コマンドを定義するインタフェースです。 操作を実行するためにのExecuteメソッド、操作が実行可能かどうか…

WPFのデータ・バインディングの基礎学習 [C#][WPF]

C#

WPFのデータバインディングを勉強していきます。 開発環境は、Microsoft Visual Studio Community 2015を使用します。 WPFでは、データ・ソース(=モデルなどの、データの提供元)をビュー(=WPFの場合はXAMLコード)上のUI要素と簡単に結び付けるために、…