[解決済み】デザインタイムのDataContextをWindowに設定すると、コンパイラーエラーが発生する?
質問
WPFアプリケーションのメインウィンドウに以下のXAMLを使用し、デザインタイムを設定しようとしています。
d:DataContext
の下にある、様々なUserControlsではうまくいくのですが、ウィンドウでそれをしようとすると、このエラーが発生します。
Error 1 The property 'DataContext' must be in the default namespace or in the element namespace 'http://schemas.microsoft.com/winfx/2006/xaml/presentation'. Line 8 Position 9. C:\dev\bplus\PMT\src\UI\MainWindow.xaml 8 9 UI
<Window x:Class="BenchmarkPlus.PMT.UI.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:UI="clr-namespace:BenchmarkPlus.PMT.UI"
xmlns:Controls="clr-namespace:BenchmarkPlus.PMT.UI.Controls"
d:DataContext="{d:DesignInstance Type=UI:MainViewModel, IsDesignTimeCreatable=True}"
Title="MainWindow" Height="1000" Width="1600" Background="#FF7A7C82">
<Grid>
<!-- Content Here -->
</grid>
</Window>
解決方法は?
を追加する必要がありました。
mc:Ignorable="d"
属性をWindowタグに追加しました。本質的に私は新しいことを学びました。その
d:
Expression Blend/Visual Studioのデザイナーが認識している名前空間接頭辞は、実は
無視される/"コメントアウトされる"。
実際のコンパイラ/xamlパーサによって!
<Window
...
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
...
/>
から取得したものです。
Nathan, Adam (2010-06-04). WPF 4 Unleashed (Kindle Locations 1799-1811). Sams. Kindle版.
マークアップ互換性
マークアップ互換性XML名前空間(
http://schemas.openxmlformats.org/markup-compatibility/2006
通常
mc
この属性は、指定された名前空間のすべての要素/属性が.NET型/メンバに解決できない場合、XAMLプロセッサに無視するように指示します。(名前空間は、無視された名前空間内の特定の型に対して Ignorable を上書きする ProcessContent 属性も持っています)。
Expression Blend はこの機能を利用して、実行時に無視できる XAML コンテンツに設計時のプロパティを追加するようなことをします。
mc:Ignorable
にはスペースで区切られた名前空間のリストを、mc:ProcessContent にはスペースで区切られた要素のリストを指定することができます。XamlXmlReader は、解決できない無視可能なコンテンツに遭遇した場合、そのノードを報告しません。無視できるコンテンツが解決可能な場合は、通常通り報告されます。そのため、コンシューマーはマークアップの互換性を正しく処理するために特別なことをする必要はありません。
関連
-
[解決済み] コメントを含むXAMLをコメントアウトする方法はありますか?
-
[解決済み] WCFとWPFの違いは何ですか?
-
[解決済み] WCFとWPFの違いは何ですか?
-
[解決済み】INotifyPropertyChangedとViewModelのDependencyPropertyの比較
-
[解決済み】ディレクトリを開くダイアログ
-
[解決済み】WPFでシンプルな(と思う)横線?
-
[解決済み】WPFのテキストブロックを選択可能にする方法はありますか?
-
[解決済み】Window Height="Auto "が期待通りに動作しない。
-
[解決済み】デザインタイムのDataContextをWindowに設定すると、コンパイラーエラーが発生する?
-
[解決済み】WPFデータグリッドの下部に空の行が表示される。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] WPFテキストボックスの多行化
-
[解決済み] XAMLで名前が名前空間に存在しないエラーが発生する
-
[解決済み] WCFとWPFの違いは何ですか?
-
[解決済み】WPFでシンプルな(と思う)横線?
-
[解決済み】Window Height="Auto "が期待通りに動作しない。
-
[解決済み】WPFのデータバインディング。親」データコンテキストにアクセスするにはどうすればよいですか?
-
[解決済み】WPFのコントロールテンプレートとDataTemplateの違いについて
-
[解決済み】WPFデータグリッドの下部に空の行が表示される。
-
[解決済み】WPFとイニシャルフォーカス
-
[解決済み】WPFで逆ブーリアンプロパティをバインドする方法は?