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

亀岡的プログラマ日記

京都のベッドタウン、亀岡よりだらだらとお送りいたします。

Blendでd:DataContextを設定する方法。

Visual Studio 2010とBlend4では,データバインディングの設定がすごくやりやすくなりましたよね。(今更
例えばBlendだと,こんな感じで設定できて非常に良い感じです。

f:id:posaunehm:20110304103356j:image

これがないとプロパティ名を直打ちすることになっちゃいますからね。マジ鬼畜です。勘弁して欲しいです。
さて。
しかし,これを実現するためには,結構おまじないを書かないといけないんですよね。
大したコード量では無いのですが・・・

<Window
	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
		x:Class="dDataContextTest.MainWindow"
	x:Name="Window"
	Title="MainWindow"
	Width="320" Height="120"
        <!-- ここから
	xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
	xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
	mc:Ignorable="d"
	d:DataContext="{d:DesignData /SampleData/SomeDataSampleData.xaml}"
    ここまで-->

こんなコードとか。

<dDataContextTest:SomeData 
 xmlns:dDataContextTest="clr-namespace:dDataContextTest"
 LeftValue="57"
 RightValue="21"
 Sum="93"/>

こんなサンプルデータ用のインスタンスとか,諸々。
存外面倒くさいです。
詳しくは,id:okazukiさんの以下の記事で。
Visual Studio 2010のデザイナに仕事をさせて楽をする方法 - かずきのBlog@Hatena
で,ずーっと面倒くさいと思っていたのですが,昨日ふと気づいてしまいました。
BlendならGUI操作だけで同じことができる,と。

前振りお終い。やり方ですが・・・

Blend上からデザイン用データコンテキストを設定する。

まず,データタブでサンプルデータの作成→クラスからのサンプルデータの作成を選択します。
トップのViewModelに当たるクラスを生成するのがMVVM的には吉。
すると,こんな感じでサンプル用データソースが作成されます。
f:id:posaunehm:20110304112414j:image

このサンプルデータソースをD&Dバインディングしてやります。
f:id:posaunehm:20110304112622j:image

このサンプルデータを介したバインディングだと,見事にd:DataContextへのバインディングになってくれます。
f:id:posaunehm:20110304112858j:image

これは楽ちんですね。なんで今まで気づかなかったんだろ・・・
ちなみにサンプルデータの編集はBlend上でできるかと思いきや,華麗にXAMLの直接編集に飛ばされます(´・ω・`)