のMainWindow
ビューで使用するMainMenu
ユーザーコントロールがあります。 MainMenu
マークアップは次のように始まります:デザインモードでWPF UserControlとそのオーナーウィンドウにビルドエラーが発生するのはなぜですか?
<UserControl x:Class="ApptEase.Client.Shell.Controls.MainMenu"
....
d:DesignHeight="25">
<UserControl.DataContext>
<shell:MainWindowViewModel />
</UserControl.DataContext>
<Menu Height="25" VerticalAlignment="Top">
<MenuItem Header="_File">
私は私のエラー一覧に2のエラーを取得し、両方のは、次のとおりです。
を入力するタイプ「System.Windows.Application」のオブジェクトをキャストすることができません " ApptEase.Client.App '
最初は、上記のユーザーコントロールマークアップの<shell:MainWindowViewModel />
行にあります。 2番目はMainWindow
のマークアップの抜粋の<shell:MainMenu Grid.Row="0" />
行にあります。
メインウィンドウの抜粋:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<shell:MainMenu Grid.Row="0" />
<ContentControl Grid.Row="1" prism:RegionManager.RegionName="ContentRegion" />
</Grid>
私MainWindowViewModel
がBaseViewModel
から派生:
public abstract class BaseViewModel : BindableBase
{
protected BaseViewModel()
{
AppState = ((App)Application.Current).AppState;
}
...
}
私は((App)Application.Current).AppState
行をコメントアウトした場合、エラーが消えます。しかし、ビルド時に出力ウィンドウに「成功ビルド」以外の出力は表示されず、アプリは正常に起動します。すなわち、BaseViewModel
ctorは例外なく正常に実行されます。
私はオプションがないが、エラーメッセージを受け入れることが無害である場合、それらを抑制する方法はありますか?私はXAMLマークアップで動作するコンパイラ指令を見ていません。
完全な例を(おそらくアーカイブとして)提供できますか?私はプリズムに慣れていませんが、これはApp.xaml/App.xaml.csの問題のようです。 – cdmnk
@cdmnk Prism Unityプロジェクトテンプレートに基づいて2つの簡単な追加だけで新しいプロジェクトを作成しましたが、基本的なアプリケーションメインウィンドウを表示するのにUnityを使用しているだけです。ビルドを行うとエラーが表示されます。ここに私のGoogleドライブへのリンクがあります:https://drive.google.com/file/d/0BzxhSNxuhN5OUEV1RG1PWGtualk/view?usp=sharing – ProfK
@cdmnk私はそれが設計時に '行末に何かあるかもしれないと思う。 Current'はタイプ 'App'ではなく、実行時にのみです。 – ProfK