しらとりのブログ

社会人ひよこプログラマのtil

WPF

DataTemplateの中からDataContextのプロパティにバインドできなくてハマったこと

WPF

コレクションをItemSourceにバインドするとコレクションの要素にアクセスできる代わりにDataContextのプロパティが見えなくなりました。よく考えると当たり前ですけどハマりました。 RelativeSource こんな感じでバインドの設定をすると親のDataContextにア…

MVVMにおけるViewModelの役割を考える

wikipediaより。 Modelの役割は、後述するViewとViewModelの役割以外の部分と考えるのが妥当である。 ViewはXAMLですし、ViewModelの役割がわかればよさそうなのでここから考えます。 View⇔ViewModeでの役割 コントロールに対応するプロパティを作成する。 …

WPFで画面とロジックを分離する(ICommand 理論編)

WPF

ICommandとは何者か。という覚書きメモです。下記の実装編のコードがなぜ動くかの補足です。 silatori.hatenablog.com ICommandインターフェース ICommandは標準ライブラリにあるインターフェースです。このICommand型のプロパティをViewModelで作成、Viewに…

WPFで画面とロジックを分離する(ICommand 実装編)

WPF

描画とドメインロジックを一緒の場所に書くとすぐスパゲッティができます。(体験談) VisualStudioのイベントハンドラ自動生成機能はすごく直感的にGUIプログラミングができますが、代償としてイベントハンドラが生成されるコードビハインドが非常に大きくな…

WPFでプロパティの変更をトリガーにしてアニメーションするときにハマったこと

WPF

DataTriggerを使ってアニメーションをするスタイルを作ってハマってしまった。以下が間違ったコード。これだと初期化したときしかアニメーションしなかった。 <Style x:Key="animetionStyle" TargetType="StackPanel"> <Style.Triggers> <DataTrigger Binding="{Binding IsChecked}" Value="true"> <DataTrigger.EnterActions> <BeginStoryboard> <Storyboard> </storyboard></beginstoryboard></datatrigger.enteractions></datatrigger></style.triggers>

WPFことはじめ おすすめ学習ルート

WPF

お仕事でWPFのフルスクラッチをすることになったので、そのときに勉強したことの覚書きメモです。詳しい実装については先人の素晴らしい記事がたくさんあるのでここでは言及しません。勉強をはじめたときにこんなペーパーがあったら良かったなーってものを残…