2012-11-13 30 views
10

Tôi dường như không thể tham khảo loại enum lồng nhau công khai từ XAML. Tôi có một lớpTham khảo kiểu enum lồng nhau từ XAML

namespace MyNamespace 
{ 
    public class MyClass 
    { 
    public enum MyEnum 
    { 
     A, 
     B, 
    } 
    } 
} 

Và tôi cố gắng tham khảo MyEnum trong XAML như thế này:

xmlns:MyNamespace="clr-namespace:MyNamespace;assembly=MyApp" 
.... 

{x:Type MyNamespace:MyClass:MyEnum} // DOESN'T WORK 

nhưng VS phàn nàn nó không thể tìm thấy công loại MyEnum. Tôi cũng đã cố gắng sử dụng cú pháp + dựa trên một trong những câu trả lời cho this post ...

{x:Type MyNamespace:MyClass+MyEnum} // DOESN'T WORK 

nhưng điều đó không làm việc, hoặc.

Lưu ý rằng x:Static không làm việc với các cú pháp +:

{x:Static MyNamespace:MyClass+MyEnum.A} // WORKS 

Và nếu tôi di chuyển ra khỏi MyEnumMyClass tôi có thể tham khảo nó quá. Nhưng không phải nếu nó được lồng vào nhau ...

Vì vậy, tôi đang thiếu gì? Làm thế nào để tôi tham khảo một enum lồng nhau từ XAML sử dụng x:Type? (Và lưu ý, tôi không cố gắng để khởi tạo bất cứ điều gì, chỉ cần tham khảo các loại).

CẬP NHẬT

Dường như đây chỉ là một lỗi với nhà thiết kế VS 2010. Nhà thiết kế phàn nàn rằng Type MyNamespace:MyClass+MyEnum was not found. Nhưng ứng dụng xuất hiện để chạy và truy cập đúng loại lồng nhau. Tôi đã thử điều này với một lớp lồng nhau quá, và nó hoạt động tại thời gian chạy.

Có thể lỗi mở: http://social.msdn.microsoft.com/forums/en-US/wpf/thread/12f3e120-e217-4eee-ab49-490b70031806/

chủ đề liên quan: Design time error while writing Nested type in xaml

+1

Trông như thế này có thể là một lỗi được biết đến trong thiết kế VS2010? http://social.msdn.microsoft.com/forums/en-US/wpf/thread/12f3e120-e217-4eee-ab49-490b70031806/ – hashlock

+0

Năm 2012 nó hoạt động, độ cao Nhà thiết kế hiển thị lỗi cho đến khi bạn xây dựng dự án của mình – Kranach

Trả lời

4

MSDN nói:

lớp tùy chỉnh của bạn không phải là một lớp lồng nhau. Các lớp lồng nhau và "dấu chấm" trong cú pháp sử dụng CLR chung của chúng can thiệp vào các tính năng WPF và/hoặc XAML khác chẳng hạn như thuộc tính đính kèm.

câu hỏi tương tự là ở đây: Creating an instance of a nested class in XAML

+0

Nhưng điều đó hạn chế dường như chỉ áp dụng cho các lớp tùy chỉnh instantiating. Tôi chỉ cố gắng tham khảo loại. Và tại sao cú pháp '+' hoạt động với 'x: Static'? Dường như không nhất quán. – hashlock

Các vấn đề liên quan