2012-01-10 31 views
35

Các bạn mới vào WPF.Tuyên bố từng phần không được chỉ định các lớp cơ sở khác nhau

Tôi có trang wpf có tên StandardsDefault. Trong mã phía sau, StandardsDefault được kế thừa Page, giống như tất cả các trang khác.

<Page x:Class="namespace.StandardsDefault" 

public partial class StandardsDefault : Page 

Bây giờ tôi đã tạo ra một lớp mới CountryStandards được kế thừa StandardsDefault thay vì trang.

<Page x:Class="namespace.CountryStandards" 

public partial class CountryStandards : StandardsDefault 

Tôi chưa thay đổi XAML. Tôi nhận được lỗi như

"khai báo một phần của 'CountryStandards' không phải xác định các lớp cơ sở khác nhau"

Tôi nghĩ rằng vấn đề có thể là nhà thiết kế không được kế thừa cùng lớp. Nhưng tôi cần phải bằng cách nào đó thực hiện kế thừa vì có nhiều phương pháp phổ biến sẽ được sử dụng trong nhiều trang chuẩn như CountryStandards

Có ai giúp tôi không?

+0

bạn đã làm theo tất cả các bước trong http://stackoverflow.com/questions/1297433/how-do-you-specify-a-different-base-class-in-xaml-files-silverlight để đặt lớp cơ sở của 'CountryStandards' chính xác? –

+1

Sau khi sửa chữa khai báo với địa phương: CountryStandards xmlns: local = "using: ..." trong Visual Studio 2017, hãy bấm dỡ bỏ dự án, tải lại dự án để loại bỏ lỗi này trong danh sách lỗi. – Eric

+0

Tất cả các câu trả lời vẫn không đáng nuôi ong 'được chấp nhận'? –

Trả lời

2

Trong bạn CountryStandards.xaml bạn nên viết

<StandardsDefault x:Class="namespace.CountryStandards"... 
+0

Tại sao các downvotes? Giải thích phiếu bầu của bạn. – Cullub

48

Bạn phải thay đổi CountryStandards XAML của bạn để:

<src:StandardsDefault x:Class="namespace.CountryStandards" 
    xmlns:src="NamespaceOfStandardsDefault" ... /> 

Có một good article về kế thừa từ một tùy chỉnh cửa sổ/trang trong WPF.

0

Đảm bảo các lớp học một phần khác không mở rộng một lớp khác.

public partial class CountryStandards : StandardsDefault 

public partial class CountryStandards : Page 

Bạn phải làm cho chúng mở rộng cùng một lớp.

0

Bạn cần sử dụng tiêu chuẩnDefault làm nút gốc vì bạn đang tạo một người dùng control.since bạn đang sử dụng trang làm nút gốc C# compiler mong đợi trang làm cơ sở. nhưng trong của bạn, bạn đang sử dụng StandardDefault làm cơ sở, do đó bạn cần sử dụng tiêu chuẩnDefault làm nút gốc thì nó sẽ hoạt động.

1

Bit của một số lẻ và chưa được liệt kê ở đây ... Nhưng vì không có câu trả lời nào được áp dụng vì tôi có cả tệp xaml và cs của mình được khai báo chính xác, tôi đã làm như sau và dường như công việc:

Đi vào thư mục giải pháp hoặc click vào hiển thị tất cả các file Buton trong Visual Studio và xóa cả obj và thư mục bin, điều này gây ra Visual Studio để tái tạo tất cả các file của mình cho dự án.

Dự án của bạn bây giờ sẽ xây dựng/chạy chính xác.

Hy vọng rằng sẽ giúp ai đó - hoặc có lẽ bản thân tôi trong tương lai.

Chỉnh sửa: Khắc phục sự cố này thường hoạt động nếu bạn gặp sự cố này sau khi thay đổi loại trang từ ví dụ ContentPage thành CarouselPage.

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