読者です 読者をやめる 読者になる 読者になる

XORveR.com の日記

XORveR.com の公式ブログです。

コードサンプル

まえがき

コードサンプルとして Microsoft の Visual Studio Team Services に Common ライブラリを置いてみました。

Commonソリューション

ライセンス

MIT ライセンスです。
コピーライト要件は消してしまうかもしれません。(他からパクったコードも多いですので)
[license.txt]

本サンプルは MIT ライセンスのもとで配布されるものとします。

下記の条件を受け入れていただけるのであれば、誰でも自由に無料で、このソフトウェアをつかっていただくことができます。

このソフトウェアをコピーしてつかったり、配布したり、変更を加えたり、変更を加えたものを配布したり、商用利用したり、有料で販売したり、なんにでも自由につかってください。

このソフトウェアの著作権表示(「Copyright (c) 2017 XORveR」)と、このライセンスの全文を、ソースコードのなかや、ソースコードに同梱したライセンス表示用の別ファイルなどに掲載してください。

このソフトウェアにはなんの保証もついていません。たとえ、このソフトウェアを利用したことでなにか問題が起こったとしても、作者はなんの責任も負いません。 

画面遷移サンプル

画面遷移のパターンとして、ユニークなウィンドウの中のコンテンツを画面遷移するサンプルが同梱してあります。

Transitionプロジェクト

コンセプト

遷移する画面は、UserControl で記述してあります。
そして、遷移元の画面から MainWindow に対して遷移先の画面のインスタンスを渡すことで画面遷移を実現します。
その理由は、『画面遷移は View の役割だ』というコンセプトによります。
画面遷移を View に専任させることで、ViewModel の単体テストは何の問題も無くなります。

UserControl1.xaml.cs

using System.Windows.Controls;
using Transition.ViewModel;

namespace Transition.View {
	/// <summary>
	/// UserControl1.xaml の相互作用ロジック
	/// </summary>
	public partial class UserControl1 : UserControl {
		ViewModel1 vm = new ViewModel1();
		public UserControl1() {
			InitializeComponent();
			DataContext = vm;
		}
		/// <summary>
		/// 操作イベント
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void valueButton_Click(object sender, System.Windows.RoutedEventArgs e) {
			vm.AddOne();
		}
		/// <summary>
		/// 画面遷移イベント
		/// </summary>
		/// <param name="sender"></param>
		/// <param name="e"></param>
		private void nextButton_Click(object sender, System.Windows.RoutedEventArgs e) {
			// 遷移先に何かパラメータを送りたい場合にはここで値をセット
			MainWindow.Instance.ViewChangeTo(new UserControl2());
		}
	}
}