C#
Observerパターンとは あるオブジェクトの状態に依存するオブジェクトがあるとき、状態の変化をそれらのオブジェクトに依存せずに自動的に通知するパターン push型とpull型 Observerパターンでは,push型とpull型があります。違いは以下のとおり。 push型 : …
Observerパターンとは あるオブジェクトの状態に依存するオブジェクトがあるとき、状態の変化をそれらのオブジェクトに依存せずに自動的に通知するパターン push型とpull型 Observerパターンでは,push型とpull型があります。違いは以下のとおり。 push型 : …
はじめに WPF DataTemplateの学習は、以下のMicrosoftのサンプル(DataTemplatingIntro)とドキュメントを合わせて確認するのがいいと思います。 github.com データ テンプレートの概要 https://docs.microsoft.com/ja-jp/dotnet/framework/wpf/data/data-temp…
https://msdn.microsoft.com/ja-jp/library/mt270964.aspx
はじめに WPFの学習はこれを見れば、把握できそう。 github.com
はじめに Webスクレイピングとは、ウェブサイトから情報を抽出するコンピュータソフトウェア技術のこと。 ウェブ・クローラーあるいはウェブ・スパイダーとも呼ばれる。(wikipedia参照) Webスクレイピングに、Html Agility Packではなく、今回は、AngleSharp…
はじめに WPFで登録・削除可能なリストを作成します。 MVVM(Model・View・ViewModel)のプロジェクトにしました。 MVVMの形にするため、以下のようにフォルダ分けしています。 Modelsフォルダ ViewModelsフォルダ Viewsフォルダ Prismでは、以下の機能を使用…
はじめに SQLiteを用いて、WPFで登録・削除可能なリストを作成します。 大量のデータを永続化させるには、データベースを用いると楽です。 SQLiteを用いてデータを永続化させる方法について説明したいと思います。 SQLiteを用いたサンプルアプリ外観 サンプ…
MVVMな設計のTips~サービスを作ってVMの依存性を排除~ http://sourcechord.hatenablog.com/entry/2016/01/23/170753 codezine.jp [C# / WPF] 最新のC# 6.0でMVVMパターンを実装する qiita.com 上のRSSリーダーは、下記内容を使用しています。いきなり、こ…
はじめに 以下の場合も、実現可能です。 C++のDLLのAPIに対して、構造体のデータを渡す場合 C++のDLLのAPIから、構造体のデータを受け取る場合 環境 IDE : Visual Studio Community 2017 (Version 15.7.1) コード #include <string> #ifdef __cplusplus #define DLLE</string>…
はじめに 過去に作成したC++の関数(API)をC#から呼び出したい場合があると思います。 その場合は、C++のプロジェクトをDLLにして、C#からAPIを呼び出すことが可能です。 ただし、C#(マネージ・コード)の変数とC++(アンマネージ・コード)の変数は、 メモ…
はじめに 以下のサイトがおすすめです。 参考サイト sourcechord.hatenablog.com WPFサンプル:Hyperlink http://gushwell.ldblog.jp/archives/52279481.html
ルーティングイベントとは 観点を機能に置いた場合、イベントを生成したオブジェクト上だけでなく、要素ツリー内の複数のリスナー上でハンドラーを呼び出すことができる種類のイベント 観点を実装に置いた場合、ルーティング イベントは、RoutedEvent クラス…
以下のページが参考になりそう。 DependencyProperty(依存関係プロパティ) tawamuredays.blog.fc2.com garafu.blogspot.jp
はじめに WPFで、自作イベントを作成する方法を調べてみました。 参考サイト 以下のサイトを参考にさせていただきました。 方法 : カスタム ルーティング イベントを作成する https://docs.microsoft.com/ja-jp/dotnet/framework/wpf/advanced/how-to-create…
UserControlは便利 繰り返し使用するUI部品は、UserControlにして何度も使用できるようにしたほうが便利です。 例えば、MainWindow.xamlを以下のように記載した場合、同じような表記が繰り返し発生します。 これをUserControlに置き換えます。
ReactivePropertyの使い方を学習していきます 画面 コード [MainWindowViewModel.cs] using Reactive.Bindings; using System; using System.Linq; using System.Reactive.Linq; namespace ReactivePropertySample { class MainWindowViewModel { public Rea…
WPF/C#/Prismで、簡単なWPFアプリケーションを作ります 以下のサイトにも記載があるように、WPFアプリケーションでMVVMのアプリケーションを作成するのは難しいと思います。 そのため、PrismというMVVM基盤ライブラリを使用します。 qiita.com 本アプリケー…
環境について 以下の環境で、Google Testを使用してみます。 Windows 10 Visual Studio 2017 Community Cmake 3.10.2 C++ なお、Visual Studio 2017 バージョン 15.5 以降では、Google Test が C++ ワークロードでのデスクトップ開発の既定のコンポーネント…
UIスレッド以外から、UIスレッドのコレクションにアクセスすると、エラーとなり、アクセスできない問題が発生します。 以下のサイトに、問題解決方法が記載してありました。 blog.okazuki.jp sourcechord.hatenablog.com
はじめに ObservableCollectionを使用して、登録と削除が可能なリストを持つアプリを作成します。 アプリの見た目 アプリには、登録、削除、全削除ボタンがあります。 名前と連絡先に文字列を入れて登録ボタンを押すと、データが登録されます。 リストの項目…
Gridコントロール Gridコントロールを使えば、コントロールの配置を簡単に決めることできます。 3行、3列のGridを作成する場合は以下のように指定します。
ObservableCollectionを使用すれば、簡単にバインディングを実現できます。 以下のサイトを参考にさせていただきました。 www.youtube.com 実行結果 コード [Palyer.cs] namespace WpfApp3 { public class Player { public int Id { get; set; } public stri…
以下のページを参考にして、WPFのコレクションのデータバインディングを学習していきます。 http://technical.live-on.net/archives/1987 inuinuwanwanilovecat.seesaa.net
よいページが見つかったので、紹介させていただきたいと思います。 WPFサンプル:ICommand インターフーイスを実装してカスタムコマンドを作成する http://gushwell.ldblog.jp/archives/52321430.html yoshinorin.net
サンプル説明 前回のコードをMVVMに直します。アプリ表示は、同一になります。 プロジェクト構成では、前回と比較して、ViewModel.csファイルを追加しました。 コード修正が入るファイルは、MainWindow.xaml.csファイルとMainWindow.xamlです。 前回と比較し…
サンプルコードについて INotifyPropertyChangedを使って、プロパティ値が変更されたことをViewに通知するのみのサンプルコードです。 簡単化するため、ViewとModelしかありません。 BindableBaseクラスは、INotifyPropertyChangedインタフェースを継承して…
はじめに 簡単なWPFサンプルアプリケーションを作成します。 本サンプルでは、Html Agility Packというライブラリを使用するため、あらかじめプロジェクトにインストールしてください。 方法は以下のページにあります。 www.atmarkit.co.jp プロジェクト名は…
非同期処理を使う必要性が発生したので、学習用のサイトを記録しておきます。 ufcpp.net www.kekyo.net
メソッドでパラメータを渡すのではなく、オブジェクト生成時に必要なデータをすべて準備する データと、そのデータを使うロジックは、一つのクラスにまとめる 一つ一つのオブジェクトの役割は単純にする 複雑な処理は、オブジェクトを組み合わせて実現する