質問: WPF、.Net 4.5、Visual Studio 2013 Communityの環境で、 デザイン時にItemsSourceにXAMLから値を設定する方法について知っている方が居れば教えて下さい。 XAML上でデザイン時`DataContext`を設定する時(`d:DataContext="{d:DesignData Source=SomeDesignData.xaml}"`)の様な形で、`ItemsControl`系の`UIElement`に対してデザイン時`ItemsSource`を設定したいと思っています。 コード上で行うのであれば、対象となる`UIElement`の`DataContext`に設定されるクラスのコンストラクタで`DesignerProperties.GetIsInDesignMode(new DependencyObject())`を使って条件分岐して`ItemsSource`の`Binding`先プロパティにデザイン用データをセットすれば良いのですが、これを使うといわゆるMVVMのVM層にデザイン用データが張り出してしまうため、出来れば避けたいと思っています。 何か良い方法、あるいは定石となる方法があれば教えて下さい。
回答: デザイン時用のViewModelを用意してデザイン用データを持たせるといいんじゃないでしょうか。 例えば、本番用のViewModelを継承してコンストラクタでデータを差し替え、とすると実装的にも楽です。 XAMLでBindするときはこんな感じで `d:DataContext="{d:DesignInstance vm:DesignViewModel}"`