0

Caliburn を使用すると、View は慣例により実行時に動的に設定された datacontext を取得します。ただし、VS とコンパイラがそれを検証し、Caliburn バインディングに干渉することなく Intellisense を提供できるように、デザイナでも設定できると便利です。

自分で設定すると、次のようになります。

DataContext="MyApp.MainViewModel"

カリバーンのバインディングがわかりません。

デザイナーだけに設定することはできますか?

4

1 に答える 1

0

Caliburn.Micro が提供するDesign-Timeサポートを利用できると思います。

Desinger-DataContext を設定し、ビュー XAML でその魔法を有効にするよう CM に指示する必要があります。

xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="clr-namespace:CaliburnDesignTimeData.ViewModels"
xmlns:cal="clr-namespace:Caliburn.Micro;assembly=Caliburn.Micro"
mc:Ignorable="d" 
d:DataContext="{d:DesignInstance Type=vm:MainPageViewModel, IsDesignTimeCreatable=True}"
cal:Bind.AtDesignTime="True"

これが機能するには、ViewModel にデフォルトのコンストラクターが必要です。これが適切でない場合は、 > 設計時の ViewModel 作成に ViewModelLocator を使用することもできます。

これはすべて、 Design-Time Supportのドキュメント ページから取得したものです。

于 2013-08-23T21:06:37.263 に答える