xamlのクラスを他のアセンブリから参照する際に問題があります。MC3074 - タイプが "clr-namespace ..."に存在しません
同じソリューションでは、2つのプロジェクトがあります。 1つはコントロール(ユーザーコントロールを保持する)と、1つはDataBinding(コンバーター/検証ルールを保持する)と呼ばれるものです。コントロールでは、xamlで検証ルールを参照しようとしています。
<Binding.ValidationRules>
<databind:Validators.FileExistsRule />
</Binding.ValidationRules>
私のプロジェクトは自分のクラスを含むプロジェクトを参照しています。アイブ氏は、私のControl.xamlの先頭にこの宣言を追加しました:
xmlns:databind="clr-namespace:GuiParts.DataBinding;assembly=DataBinding"
を私はコンパイルするときしかし、私はエラーを取得:
The tag 'Validators.FileExistsRule' does not exist in XML namespace 'clr-namespace:GuiParts.DataBinding;assembly=DataBinding'.
クラスは間違いなく存在している、私はコードでそれを呼び出すことができます背後には問題はありませんが、xaml経由ではありません。クラスを同じプロジェクトに移動すると、もう問題はありません。アイブ氏は、ここに他の質問を見て、次のことを試してみました:
- クリーニングとすべてのプロジェクトの確保、関連するすべてのプロジェクト
- を再構築するには、削除
- ネット(4.0、プロフィール)の同じバージョンをターゲットにしています名前空間定義の終わりからの「アセンブリ」定義。
上記のいずれも機能していません。どこに間違っているのかに関する提案はありますか?
EDIT
マイFILEEXISTSの検証:など
new GuiParts.DataBinding.Validators.FileExistsRule();
だから、アイブは私の名前空間を持って正しい:
namespace GuiParts.DataBinding.Validators
{
/// <summary>
/// Validates that the file with the specified name exists
/// </summary>
public class FileExistsRule : ValidationRule
{
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
ValidationResult res = null;
res = (! File.Exists((string)value))
? new ValidationResult(false, "File does not exist")
: new ValidationResult(true, null);
return res;
}
}
}
私はエラーなしの背後にあるコードに次のように呼び出すことができます。
あなたしている方法は、1することができ行の文: 'return File.Exists((文字列)の値)?新しいValidationResult(false、 "ファイルは存在しません"):新しいValidationResult(true、null); ' –
これを解明したことがありますか? –