TabControl(タブコントロール)とは? TabControlとは,ヘッダー付きのページを複数作れるコントロールです。画面のエリアに対して,配置する必要のあるコントロールが多い場合や,グループ分けして入力させたい場合に使用します。 TabControlは,TabItemの数だけページが作られます。各ページのタイトルはTabItemのHeaderに設定します。 <TabControl> <TabItem Header="TabA"> </TabItem> </TabControl> 主なプロパティ ソースコード上から表示されているページを切り替える場合等は「SelectedIndex」を変更します。ページの数だけインデックスがあり,1ページ目はインデックス「0」から始まります。そのため,2ページ目を選択する場合は「1」と指定します。 サンプルコード <Window x:Class="W
はじめに これまでの記事では NavigationによってRegionに表示しているViewを切り替える方法について説明した。PrismのNavigationには、RegionにViewが追加されていくNavigationもある。今回は TabコントロールへViewを追加してみる。 前回のビューをタブ化する タブ化といっても、これだけ。 <ContentControl Name="MainRegion" prism:RegionManager.RegionName="MainRegion" /> ↓ <TabControl Name="MainRegion" prism:RegionManager.RegionName="MainRegion" /> Navigation対象のRegionがContentControlのサブクラスであるか、ItemsControlのサブクラスであるかによっ
※2022/04/23 追記 本記事の続編として、以下の記事を書きましたので、合わせて御覧ください。 仕事でSwiftUIでTCAを使ってみて、かなり知見がたまったので、その解説です。 MVVMからTCAへの移行を考えているのであれば、参考になると思います。 宣言的UIに、MVVMって不要なのでは? iOS開発の現場で、宣言的UIが当たり前に使われるような時代になりました。 SwiftUIの開発体験、素晴らしい です。最高です。 しかし最近、SwiftUIで当たり前のように 「MVVMで開発しよう」 となったときに、 「ほんとにそれでいいんだっけ?」 と疑問に思いました。 自分の考えを深掘ってみると 問い: iOS開発で、宣言的UIにMVVMを採用することは本当にいいんでしたっけ? 結論: 「SwiftUIを使うのであれば、MVVMを採用するのは止めよう」 理由: ViewModelの存在
WPF/MVVM/C#/Prism5.0 ViewModelを少し便利に-BindableBaseとDelegateCommand-C#WPFMVVMframweworkPRISM WPFでMVVMは難しい 残念なことに、WPFでMVVMパターンを適用する際には、.NET標準だけ使うとなると、綺麗でわかりやすく保守が容易なコードが書けません。 書けないような基盤しかないのです。 なので、PrismなどのMVVM基盤ライブラリが必要となります。 https://msdn.microsoft.com/ja-jp/library/gg406140.aspx 他にも様々なライブラリが公開されていますが、MS謹製ということで今回はPrismを利用しようと思います。 Prismを利用することで得られるメリットを公開します。 以下の予定です。 BindableBase/DelegateCommand ~
In this article I’ll describe the rules and practices I’m following for XAML and MVVM application development. I’m using the described techniques since multiple years and they have proven themselves for me. Most of the described rules apply for all types of XAML projects - Windows Store, Windows Phone, Silverlight and WPF projects. Sample code: The source code of the application Visual JSON Editor
ReactivePropertyはMVVM+リアクティブプログラミングを快適にサポートしてくれるライブラリです。 今回は、ReactivePropertyを使用して、ボタンの制御サンプルを作ってみたので、備忘録として残したいと思います。 なお、ReactivePropertyについてもっと知りたい方は、MVVMをリアクティブプログラミングで快適にReactivePropertyオーバービューをご覧になってみてください。 では、サンプルプログラムを見ていきましょう。 MainWindow.xaml MainWindow.xamlクラスには、ボタンの活性、非活性を制御するグルーピングされた「活性」ラジオボタン、「非活性」ラジオボタンを配置します。 「活性」ラジオボタンのIsCheckedプロパティには、IsActiveをバインディングしています。 ボタンには、CommandプロパティにHoge
RxとReactivePropertyを使って、WPFでUnidirection Data Flowを実現するWPFReactiveExtensionsReactiveProperty 要約 ブラウザ上の MVC的な分割を Node Stream API で行うの WPF+Rx+ReactiveProperty 版です 背景 WPFで、真面目にコードビハインドとViewModelを分離して、MVVMを実現するには、INotifyPropertyChangedとICommandの実装が面倒です。 また、個人的に双方向バインディングより、Unidirectional Data Flowが好きです。 作戦 幸い、技術的要素は揃っています。 イベントをRxで処理 ViewModelからViewへの変更通知はReactivePropertyで実現 ViewはXamlで実現 次のような処理の流れを考え
[ReactiveUI](http://reactiveui.net)は、 WPF や UWP の他にも、 WinForms にも対応するなどしています。幅広いプラットフォームとコミュニティの活発さを感じます。 NuGet からは `reactiveui` というパッケージを利用してください。すべて小文字なものが本物です。 <Window x:Class="ByReactiveUI.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="htt
Prism for Windows Runtimeって個人的に結構気に入ってて、Universal appでも使いたい…!と思うのですが、いかんせんフットワークが重く感じてしまうんですよね、Prismのチーム。なのでUniversal appが発表されて数日でPrismも対応しました!とかいう感じはなさそう。 なら作ればいいじゃない?ということで、新しいWindows Phone applicationはWindows store appと、ライブラリがほぼ同じということで、Prism for Windows Runtimeのdll自体を参照しても動きます。さらに、Unity(DIコンテナのほう)も動きます。これだけ動けば上等!ということで、サポート系ライブラリ等をそろえてNuGetに放流。もとにしたのは、Prismを使うけどページの継承はしなくていいように作ったPrismAdapter。
WPFでは、強力なデータバインディングを活かした設計パターンとしてModel View ViewModelパターンというアプリケーションを設計するうえでの定石となる設計パターンがあります。Model View ViewModelパターンはMVVMパターンと略されます。MVVMパターンは、WPFだけでなくWebアプリ開発や、その他のアプリ開発にも波及していて、それぞれの状況に応じて形を変えて存在しています。 MVVMパターンは、MSDNマガジンの以下の記事をきっかけに世間に認知されるようになりました。 Model-View-ViewModel デザイン パターンによる WPF アプリケーション : http://msdn.microsoft.com/ja-jp/magazine/dd419663.aspx また、MicrosoftはオープンソースでPrismというMVVMパターンをサポートす
PrismってXamarinにも対応してるんですよね(Previewですけど)ということで、Hello worldしながら、基本的な手順をやっていこうと思います。 プロジェクトの新規作成 まず、プロジェクトの新規作成を行います。Cross-Platform/Blank App (Xamarin.Forms Portable)を選択します。プロジェクト名は、ここではXamarinPrismHelloWorldにしました。UWPのターゲットバージョンをいくつにするかとか聞かれるのでOKを押してプロジェクトを作成します。 私の場合だけなのかもしれませんが、Xamarin.Formsのプロジェクトを作ったらAndroidのエミュレータ起動できない状態になることがあるのですが、そういう時は一度ソリューションを閉じて開きなおすことで解決します。 Prism.Formsの追加 まず、Androidのプロ
Model View ViewModelパターン(以下MVVMパターン)が登場して約10年になります。 ここらへんで一度MVVMを実装するうえで必要になる技術要素を振り返ってみたいと思います。 その前にMVVM MVVMは以下のWikipediaあたりでも見てください。 Model View ViewModel - Wikipedia 見た目と、それ以外にクラスを分離して、さらに見た目をXAMLで作りやすいようにViewとViewModelに分離したようなイメージです。 見ていこう ということでMVVMで必要になる技術要素を見ていこうと思います。 INotifyPropertyChangedインターフェース まずは、これが無いと始まりません。MVVMではViewはViewModelを監視して、ViewModelはModelを監視していることが多いです。その時に、クラスのプロパティが変わった
前にこんな記事を書きました。 blog.okazuki.jp まぁ別にこの時と何かしら INotifyPropertyChanged を実装するために使える機能が増えたりしてないので状況が変わったわけではないのですが…。現実問題としてどういうものを選択するのかということをつらつらと書いてみたいと思います。 実際の業務で使用するとした場合に選択する方法 多分、大人しく INotifyPropertyChanged を実装した BindableBase クラスを作ってコードスニペットの組み合わせです。 ライブラリを使う場合は Prism.Core を入れて Visual Studio の拡張機能に Prism Template Pack を入れて propp コードスニペットで OK です。 基本クラスの縛りは嫌ですが、何かしら全体に波及する機能を簡単に追加するための手段としては親クラスは C
添付プロパティは、別のDependencyObjectを継承したクラスに対して、任意のプロパティを設定することが出来る機能です。例えば、GridクラスのRow添付プロパティやColumn添付プロパティがあります。これは、Grid内の別コントロールに対して、何行目、何列目に表示するのかを設定するのに使用します。注目すべきなのは、Row添付プロパティとColumn添付プロパティはButtonなどには定義されていませんが、Buttonなどの様々なコントロールに設定可能な点です。これが添付プロパティの特徴になります。 <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <!-- Grid.Row添付プロパティの設定例 -
先日のボヤキが大反響である。本日3/7はオレ史上最高のページビューを更新した。なんと、これまでの記録の倍である。 ugaya40さんのページはそれほど多くの人に見られているのか。すごいな。 ちょっとお礼しないとな。 『「MVVMのメリット・デメリットを見つめなおす」を読んで』を読んで http://d.hatena.ne.jp/wave1008/20110305 で、日記をあらためて見直してみたら、なんか自分がいろいろあきらめて達観しているオッサンに思えてきた。まあ、当たらずしも遠からずではあるのだが、ちょっとカッコ悪い気がしている。なので、MVVMの壁を越えるのをあきらめるのではなく、前向きな記事を書いてみることにする。ちゃんと反省するのがオレのいいところである。(自分で言うなって?) さて、Viewの状態をViewModelに持っていく上で、コントロールにおいてDepencencyPr
えむナウさんがまたやってくれました 添付ビヘイビアーの利点は View のコードビハインドを書かなくてすむ、一度作成すると再利用が容易、使用するのにXAMLだけで書ける、 Blend でサポートされている、といろいろある。 MVVM パターンで VM から VIEW を操作するには、添付ビヘイビアーを使用することも推奨する。 MVVM パターンで VM から VIEW を操作したい その2 この発想も無かったです。 添付ビヘイビアはひさしく使ってないから、頭の片隅に追いやっていました。。。 私は文章だけだと理解できないので実践してみます Expression Blend は持っていないので、Visual C# 2010 Express Edition で。 添付ビヘイビアはコードで書きます。 前回の依存関係プロパティを使ったサンプルを、添付ビヘイビアを使ったものに書き変えていきます。 添付
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く