Mam problemy z odwoływaniem się do klas w xaml z innych złożeń.MC3074 - typ nie istnieje w "clr-namespace ..."
W tym samym rozwiązaniu mam dwa projekty. Jeden o nazwie Controls (do przechowywania kontroli użytkowników) i jeden o nazwie DataBinding (przechowuje konwertery/reguły sprawdzania poprawności). W kontroli, im próbą odniesienia reguła walidacji w XAML:
<Binding.ValidationRules>
<databind:Validators.FileExistsRule />
</Binding.ValidationRules>
Mój projekt odwołuje się projekt zawierający moje zajęcia. Ive dodał tę deklarację na szczycie mojej Control.xaml:
xmlns:databind="clr-namespace:GuiParts.DataBinding;assembly=DataBinding"
Jednak, kiedy skompilować, pojawia się błąd:
The tag 'Validators.FileExistsRule' does not exist in XML namespace 'clr-namespace:GuiParts.DataBinding;assembly=DataBinding'.
Klasa pewno istnieje, mogę zadzwonić go w kodzie z tyłu bez żadnych problemów, ale nie za pośrednictwem xaml. Jeśli przeniesię klasę do tego samego projektu, znowu nie mam żadnych problemów. Widziałem inne pytania na temat tutaj, i próbowałem następujące:
- czyszczenia i przebudowa wszystkich istotnych projektów
- zapewnienie wszystkim projekty są skierowane do tej samej wersji .NET (4,0), aby zobaczyć pełny profil
- Wyjmowanie definicja "złożenia" od końca definicji przestrzeni nazw.
Żadne z powyższych nie zadziałało. Wszelkie sugestie co do tego, gdzie idę źle?
EDIT
Moja FileExists Validator:
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;
}
}
}
mogę nazwać następujące w kodzie tyłu bez żadnych błędów:
new GuiParts.DataBinding.Validators.FileExistsRule();
więc ive got my nazw itp poprawne.
jesteś metoda może być 1 instrukcja linii: 'zwraca wartość File.Exists ((string))? new ValidationResult (false, "Plik nie istnieje."): new ValidationResult (true, null); ' –
Czy to rozumiesz? –