Im gặp sự cố khi tham chiếu các lớp trong xaml từ các assembly khác.MC3074 - loại không tồn tại trong "clr-namespace ..."
Trong cùng một giải pháp, tôi có hai dự án. Một được gọi là Điều khiển (để giữ các điều khiển người dùng) và được gọi là DataBinding (giữ các quy tắc chuyển đổi/xác thực). Trong điều khiển, im cố gắng tham chiếu quy tắc xác thực trong xaml:
<Binding.ValidationRules>
<databind:Validators.FileExistsRule />
</Binding.ValidationRules>
Dự án của tôi tham chiếu dự án chứa các lớp của tôi. Ive thêm tuyên bố này ở đầu Control.xaml tôi:
xmlns:databind="clr-namespace:GuiParts.DataBinding;assembly=DataBinding"
Tuy nhiên, khi tôi biên soạn, tôi nhận được một lỗi:
The tag 'Validators.FileExistsRule' does not exist in XML namespace 'clr-namespace:GuiParts.DataBinding;assembly=DataBinding'.
Lớp chắc chắn tồn tại, tôi có thể gọi nó là trong mã đằng sau không có vấn đề gì, nhưng không phải thông qua xaml. Nếu tôi di chuyển lớp học đến cùng một dự án, một lần nữa, tôi không có vấn đề gì. Ive nhìn thấy câu hỏi khác trên đây, và đã thử như sau:
- Làm sạch và xây dựng lại tất cả các dự án có liên quan
- Đảm bảo tất cả các dự án đang nhắm mục tiêu cùng một phiên bản của Net (4.0, đầy đủ hồ sơ)
- Tháo định nghĩa 'assembly' từ cuối định nghĩa vùng tên.
Không có điều nào ở trên có hiệu quả. Bất cứ đề nghị như nơi im đi sai?
EDIT
FileExists My 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;
}
}
}
tôi có thể gọi như sau trong mã đằng sau mà không cần bất kỳ lỗi:
new GuiParts.DataBinding.Validators.FileExistsRule();
Vì vậy, ive có không gian tên của tôi, vv đúng.
Bạn phương pháp đang có thể là một 1 tuyên bố dòng: 'return File.Exists ((string) value)? ValidationResult mới (sai, "File không tồn tại."): ValidationResult mới (true, null); ' –
Bao giờ con số này ra? –