2012-01-13 10 views
0

ラベルのみを表示するビューがあります。XamlParseExceptionが表示される

ラベルのテキストがviewmodelプロパティにバインドされているため、viewmodelはビューに正しく挿入されます。私は、XAMLでのデータグリッドを定義しようと今、私はXamlParseExceptionを持っている:

{System.Windows.Markup.XamlParseException:タイプ「データグリッド」が見つかりません。 [行:16位置:45] su System.Windows.Application.LoadComponent(オブジェクトコンポーネント、Uri resourceLocator) su。Common.Views.FunctionalityView.InitializeComponent()su。Common.Views.FunctionalityView..ctor(IFunctionalityViewModel viewModel)}

しかし、私はそれが動作InitializeComponent();DataGrid myDg = new DataGrid()権利を定義した場合。

すべての参照を確認しても問題は見つかりません。

+0

として、より伝統的な名前空間で識別されている理由はここにありますでした[編集] *例外の実際のテキストを追加する*?あなたの言い換えは、何が起こっているのかを理解するのを難しくします。また、内部の例外もチェックしてください。 – Will

+0

例外は、FunctionalityViewコンストラクタのInitializeComponent()で発生します。 –

+0

K、あなたのデフォルトの名前空間が台無しになっています。新しいUserControlを作成し、UserControl内のすべてのxmlns定義を確認します。ビュー内のものと比較してください。必要に応じて修正してください。 – Will

答えて

1

デフォルトの名前空間が乱雑になっているようです。 xamlがなければ、あなたがすべきことを伝えるのは難しいです。

これを簡単に理解するには、新しいUserControlを作成し、ルートに定義されているxmlns名前空間を調べて、ビューのルート要素と比較します。

WPFは、特殊な名前空間定義によって種類を特定します。 [名前空間]

である

;(アセンブリが= [アセンブリ名])、[名前空間]:これは、形式

CLR名前空間を以下の型定義を含む名前空間。そして、型がxamlファイルが配置されているアセンブリとは異なるアセンブリ内で定義されている場合は、その序文にそのパーツを含める必要があります。 [assembly name]は、.dll拡張子のないアセンブリの名前です(たとえば、assembly=mscorlibmscorlib.dllをインポートします)。 Int32型をインポートして、XAML以内にそれを使用するには、名前空間を定義する

xmlns:s="clr-namespace:System;assembly=mscorlib" 

を持っていますまた、あなたがアセンブリ内すべてのタイプの異なる名前空間を割り当てることができますassembly-level attributeが存在します。通常、これはURLの形式をとります。これは、IIRCの必要性ではなく伝統によるものです。いくつかのコントロールが、そのような

のxmlns =「http://schemas.microsoft.com/winfx/2006/xaml/presentation」

+0

ありがとう、私は私の 'xmlns:sdk =" http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk "を確認した" 'xmlns =" http://schemas.microsoft.com/winfx/2006/xaml/presentation "と今すぐ動作します –

+0

@TomJerry:[ちょっと、喜んで助けてください](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer -作業) – Will

関連する問題