タグ

ブックマーク / blogs.wankuma.com (21)

  • ジェネリクスの代入を理解する その2

    前回はまず、ジェネリクス型パラメータを伴うList同士の代入互換性について述べました。 今回はそれらのListのadd()メソッドとget()メソッドについて見てきたいと思います。 なお、前回同様に C extends B, B extends A という継承関係があることとして以下話を進めます。 入力値の制約 前回で<? extends B>型には <B>も <C>も <? extends C>も代入できると述べました。 List<? extends B> listBEx = new ArrayList<C>(); ということができるわけですね。 さて、このlistBExにadd()をしてみるとしましょう。 listBEx.add(new B()); 実は、これがコンパイルエラーになるのです。 List<? extends B>型には B型をadd()できないのです! というのも、さきほ

  • ジェネリクスの代入を理解する その1

    Javaのジェネリクスはかなり強力で、相当の型を表現できるのですが、 代償として非常に複雑なものとなっています。 ややこしいのは、オブジェクト指向の部分の型の代入互換性と、 ジェネリクス型パラメータの部分の代入互換性は、表現こそ似ているものの、 その意味するところはまるで違うと言うことにあります。 端的には、C extends B, B extends Aの関係があるとして、 型B にはサブクラスであるCをキャストなしに安全に代入することができます。 B b = new C(); しかし、ジェネリクス型パラメータの場合の List<B> listB = new ArrayList<C>(); はコンパイルエラーとなります。 List<? extends B> listBEx = new ArrayList<C>(); であれば代入が可能です。 このように、同じ継承階層の型を扱うのにもかかわ

  • WPF の Binding デバッグ機構

    WPF の Binding の状態を確認するには WPF の Binding デバッグ機構 を使います。 この機能は .NET Framework Version 3.5 で導入されました。 サポート対象は 3.0SP1 からになっています。 WPF の Binding の Converter が減る方向へ の場合はこのようにします。 <Window x:Class="TextBoxBindings.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:TextBoxBindings" xmlns:diag="clr-namespac

    cu39
    cu39 2009/09/06
  • CodeRush Xpressの使い方をまとめたblogエントリ紹介

    CodeRush Xpress for C# and Visual Basic inside Visual Studio 2008 - Mark Miller via DevExpress奮闘記-024 (CodeRush Xpress, 使い方, howto) - いろいろ備忘録日記 via CodeRush Xpressのドキュメントが良くできてる(※英語ですが) - なお記 CodeRush Xpressを提供しているDevExpress社の中の人が、CodeRush Xpressの機能について「Navigate」、「Select」、「Declare」、「Refactor」という4つの観点から、それぞれの機能をハードコピーを交えて分かりやすく解説しています。 以前私が書いたエントリよりもっと細かく詳しく解説されていますので、ぜひ見てみてください。 関連エントリ:無償のコーディングサポ

    cu39
    cu39 2009/08/24
  • 無償のコーディングサポートツール「CodeRush Xpress」がすごい

    越後在住子持ちプログラマー奮闘記 - Author:まさる(高野 将、TAKANO Sho) 目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 338 記事 - 0 コメント - 13776 トラックバック - 105 ニュース ネタ元→ナオキにASP.NET(仮) : VS ユーザーの開発生産性を大幅アップ無償のアドイン CodeRush Xpress と Refactor! 例えば、CodeRush ・ブロックの見える化(スコープ範囲を薄く線引きし可視化しています) ・Throw とか Exit とかの処理から処理へのジャンプが発生する場合のジャンプ先へのアニメーション表示(どこに飛ぶかが一目でわかる) ・宣言、参照間のジャンプ(わんくま同盟のまさるさんお勧め) さっとあげるだけで3つ。実際に使ってみると細かな点で恩恵を受けることになります。 というわけで、

  • [WPF][C#]Model View ViewModelパターンでハローワールド その2

    C#やJavaRubyとメモ書き 目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 692 記事 - 0 コメント - 166886 トラックバック - 212 ニュース わんくまBlogが不安定になったため、前に書いてたはてなダイアリーにメインを移動します。 かずきのBlog@Hatena 技術的なネタは、こちらにも、はてなへのリンクという形で掲載しますが、雑多ネタははてなダイアリーだけに掲載することが多いと思います。

    cu39
    cu39 2009/08/11
    Composite Application Guidance for WPF Feb2009 の使用例
  • [WPF][C#]Composite Application Guidance for WPFのコマンド(DelegateCommand<T>, CompositeCommand)

    このクラスは、すこぶるシンプル。 コンストラクタは以下の二種類ある。 DelegateCommand<T>(Action<T> executeMethod) DelegateCommand<T>.Execute(T parameter)が呼び出されたときに呼ばれるメソッドを指定するコンストラクタ DelegateCommand<T>(Action<T> executeMethod, Func<T, bool> canExecuteMethod) DelegateCommand<T>.Execute(T parameter)が呼び出されたときに呼ばれるメソッドと、DelegateCommand<T>.CanExecute(T parameter)が呼び出されたときに呼ばれるメソッドを指定するコンストラクタ 基このコンストラクタを使うだけでよさそうだ。ExecuteやCanExecuteを直

  • [C#][WPF]WPF ToolkitのDataGridのバグ?

    WPF Toolkitが、暫くみない間にOctober 2008 Releaseになってた。 ということで、早速ダウンロードしてお試し! CalendarやDateTimePicker,DataGridが入ってるみたい。ということで、一番わくわくしそうなDataGridを触ってみた。 当然といえば当然だけど、以前試した時とほとんど変わらない。 そう思って弄ってるとバグらしきものを発見。 うちでの再現手順。 とりあえず、適当なデータをDataGridに表示させる。 ここでカラムの端をつまんでぐぐいっとサイズ変更する。 スクロールバーで下にスクロールして見てみると、サイズがおかしなセルがいる。 (何回かサイズ変更スクロールで確認をすると、うちでは必ず出てくる。) Windows XP SP2 + .NET Framework 3.5 SP1 + WPF Toolkit October 2008

  • [WPF][C#]待望のDataGridコントロール!!お試し

    C#やJavaRubyとメモ書き 目次 ホーム 連絡をする RSS Login Blog 利用状況 投稿数 - 692 記事 - 0 コメント - 166943 トラックバック - 212 ニュース わんくまBlogが不安定になったため、前に書いてたはてなダイアリーにメインを移動します。 かずきのBlog@Hatena 技術的なネタは、こちらにも、はてなへのリンクという形で掲載しますが、雑多ネタははてなダイアリーだけに掲載することが多いと思います。

  • [Silverlight][C#]Silverlight3の素敵な新機能「マウスホイール」

    さて、Silverlight3を日語環境で開発できるようになって一週間くらいたちますが、ちらほらとSilverlight3関連の記事とかを見るようになってきました。 動画配信すげーよ!とか、SEOばっちりだぜ!とか色々新機能が紹介されてますが、個人的に一番嬉しいのがマウスホイールのイベントが拾えるようになったことだったりします。 Silverlight2では、マウスホイールのイベントを拾おうと思ったら、どうしてもJavaScriptでやってるみたいな泥臭い感じのことをしないといけませんでした。 参考:http://blogs.wankuma.com/kazuki/archive/2009/04/20/171690.aspx そのため、Silverlight2でホイールスクロール対応させるのは、ちょびっと大変な感じでした。 Silverlight.FXみたいに、うまいことラッピングされてい

  • WPF の Binding の Converter が減る方向へ

    Kazuki さんの Blog を補足します。 http://blogs.wankuma.com/kazuki/archive/2009/05/28/173774.aspx WPF の Binding は TextBox に入力があってフォーカスが離れると property の set を呼びますが、 その時の INotifyPropertyChanged でのイベントには反応しません。 Binding.Converter プロパティ などがセットされていて property の 値と、 表示が変わってくるかもしれない時には INotifyPropertyChanged でのイベントに反応します。 つまり、property の set と TextBox 表示が変わる場合は Converter をつけるのが来の形なのです。 これによって通常の場合は無駄な INotifyPropertyC

  • [WPF][C#]WPF4.0でのBindingのうごきの違い

  • [SQL Server]SQL Server 2008 Express Editionのインストールに失敗

    SQL Server 2008 Express Editionをインストールすると最後の最後で失敗する。 原因を探っていくと、MSXML6 SP2が入っているのが原因だった。 何故、失敗するのかというと… SQL Server 2008のインストーラはMSXML6(SP無し)を入れる MSXML6のインストーラはSP2が入っているといってMSXML6をインストールしない SQL Server 2008のインストーラはMSXML6のインストールに失敗したのでインストール失敗にする SQL Server 2008が入らないorz ということで、MSXML6 SP2を消して入れるとうまくいった。 環境:Win XP Pro SP2 + MSXML6 SP2 投稿日時 : 2009年1月26日 18:18 Feedback # re: [SQL Server]SQL Server 2008 Exp

  • [WPF][C#]Model View ViewModelパターンでハローワールド

    MSDNマガジン 2009年2月号にある「Model-View-ViewModel デザイン パターンによる WPF アプリケーション」にあるModel-View-ViewModelパターンが素敵です。 ざっくり説明すると… Model 通常のクラス。 レガシーなC#やVBで作ったクラスたちです。 View XAMLです。大体UserControlです。 ViewModel INotifyPropertyChangedインターフェースや、IDataErrorInfoインターフェースを実装したViewに特化したクラスです。 ViewModelのデータをViewへ表示する仕組み ViewのDataContextにViewModelを入れてBindingして表示します。 IDataErrorInfoや、ValidationRuleを使って入力値の検証を行います。 Viewでのボタンクリック等の操

  • [C# 2.0]??演算子(null coalescing operator )

  • [WPF][C#]WPFでエクスプローラもどき

    広島から東京に向かう新幹線の中で暇だったので、WPFでエクスプローラもどきちっくなものを作ってみた。 3時間くらいしかかけてないので、非常に手抜き実装っぽい感じは否めない(アクセス権限の無いフォルダへのアクセスしたときの例外は投げっぱなし、非同期でフォルダの一覧やファイルの一覧とってないのでファイル数とかが多いともたつく)所はありますが、それっぽく動いています。 起動直後 フォルダを選ぶとファイルの一覧が出る そろそろ東京に到着してしまうので、解説とかは出来ませんが、一応何かの参考になるかもしれないので一応プロジェクトをまるごとアップしておきます。 一応M-V-VMパターンちっくには作ってあります。 このアプリケーションにおけるModelは、.NET Frameworkのクラスライブラリの中にあるDirectoryやFile, Pathなどのクラスです。 後は、TreeViewやListV

  • [WPF]WPF関連のエントリを整理してみた

    WPFに関するエントリが結構たまってきたので、ここらへんで一度整理してみようと思います。 整理してみると、結構いっぱいあってびっくりしました…。 無駄に長いエントリになってしまって無念…。 WPF入門・基礎系 WPFの超入門あたりのエントリです。Hello Worldあたりの触りのエントリ。 WPF入門してみた WPF入門してみた その2 xamlで書いてみよう [WPF]WPFアプリケーションの種類 DependencyObjectについて WPFのコントロールはすべてDependencyObjectを間接的に継承しています。 なので、DependencyObjectについて理解するのは大事なことです。 [C#][WPF]DependencyObjectって [C#][WPF]DependencyObjectって その2 [C#][WPF]DependencyObjectって その3 [

  • [WPF]WebBrowserコントロールは?

    <Window x:Class="WpfBrowser.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="WPF Browser"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto"/> <RowDefinition /> </Grid.RowDefinitions> <Grid Grid.Row="0"> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> <ColumnDefinition Width="Auto" /> </Grid.Colu

    cu39
    cu39 2009/07/08
    Frameなんすか……ほんとWebBrowserは?
  • [Silverlight] Silverlight2での大量テキストの表示(XPS編)

    先日のエントリにえムナウさんからSilverlight2での大量テキストの表示に「XPSを使ってみたら?」とアドバイスを頂き、大量のテキストをXPSファイルを元に出力しようと実装を行ってみました。 XPSはWPFのプリント出力の勉強の時に少し触った位で、XPS自体の理解が全然ない状態だったので1から調べ始めましたが、結構解けない問題が多いです。 まず、XPSファイルはMS製のPDFと考えると分かり易いかと思います。XPSファイルは拡張子が「.xps」のファイルであり、.NET Framework3.0では標準でプレビューを行うことが出来ます。 またXPSファイルは圧縮ファイルになっているので、拡張子を「.zip」などにして解凍をする事が出来ます。Office2007のExcelやWordで作成されるファイルと同じような感じです。 解凍したファイル内にはXPSファイルで使用されるデータが多数

    cu39
    cu39 2009/07/08
    「ではSilverlight2は?と言うと、System.Windows.Xps名前空間がサポートされていません。またFlowDocumentクラスも使用出来ません」FD使えないの微妙ね。
  • .NETな日々

    descriptionMVVMパターンを使用した場合のViewのフェードアウトについて行き詰まってます・・。 最近MSDMマガジンに載っていた「Model-View-ViewModel デザイン パターンによる WPF アプリケーション」を参考に、MVVMパターンを使用したアプリケーションを作っています。 MVVMパターンはUIとロジックを切り離すとてもいいパターンだと思うのですが、その疎結合さゆえにView側の操作が柔軟に行えない感じがしています。 現状は参考サイトと同様に、「Window×1」 に対して「View×n」という、1つのWindowの中でViewの切り替えを行う画面遷移方式を取っています。 作っているアプリケーションはViewの遷移時にフェードイン・フェードアウトを行わせようと思っているのですが、Viewのフェードアウトの実装部分で行き詰っています。 M

    cu39
    cu39 2009/07/08