0

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

ラベルのテキストがビューモデル プロパティにバインドされているため、ビューモデルはビューに正しく挿入されます。ここで、xaml で DataGrid を定義しようとすると、XamlParseException が発生します。

{System.Windows.Markup.XamlParseException: タイプ 'DataGrid' が見つかりません。[Line: 16 Position: 45] su System.Windows.Application.LoadComponent(Object component, Uri resourceLocator) su Common.Views.FunctionalityView.InitializeComponent() su Common.Views.FunctionalityView..ctor(IFunctionalityViewModel viewModel)}

DataGrid myDg = new DataGrid()しかし、それが機能する前に権利を定義するInitializeComponent();と。

すべての参照を確認しましたが、まだ問題が見つかりません。

4

1 に答える 1

1

デフォルトの名前空間が台無しになっているか、欠落しているようです。xaml がないと、何をすべきかわかりません。

自分でこれを理解する簡単な方法は、新しい UserControl を作成し、そのルートで定義されている xmlns 名前空間を調べて、View のルート要素と比較することです。

WPF は、特殊な名前空間定義によって型を見つけます。フォーマットに従います

clr-namespace:[namespace](;assembly=[アセンブリ名])

どこ

[名前空間]

型定義を含むネームスペースです。また、xaml ファイルが配置されているアセンブリとは別のアセンブリ内で型が定義されている場合は、その部分を序文に含める必要があります。 [assembly name].dll 拡張子を除いたアセンブリの名前です (例: assembly=mscorlibimport mscorlib.dll)。Int32 型をインポートして xaml 内で使用するには、名前空間を定義する必要があります。

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

アセンブリ内のすべての型に異なる名前空間を割り当てることができるアセンブリ レベルの属性もあります。通常、これは URL の形式を取ります。これは必要ではなく伝統によるものです、IIRC. これが、一部のコントロールがより伝統的な名前空間で識別される理由です。

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

于 2012-01-16T15:53:26.907 に答える