Caliburn を使用すると、View は慣例により実行時に動的に設定された datacontext を取得します。ただし、VS とコンパイラがそれを検証し、Caliburn バインディングに干渉することなく Intellisense を提供できるように、デザイナでも設定できると便利です。
自分で設定すると、次のようになります。
DataContext="MyApp.MainViewModel"
カリバーンのバインディングがわかりません。
デザイナーだけに設定することはできますか?
Caliburn を使用すると、View は慣例により実行時に動的に設定された datacontext を取得します。ただし、VS とコンパイラがそれを検証し、Caliburn バインディングに干渉することなく Intellisense を提供できるように、デザイナでも設定できると便利です。
自分で設定すると、次のようになります。
DataContext="MyApp.MainViewModel"
カリバーンのバインディングがわかりません。
デザイナーだけに設定することはできますか?
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のドキュメント ページから取得したものです。