Tại sao cài đặt thuộc tính phụ thuộc sẽ làm hỏng ứng dụng của tôi khi tôi cung cấp giá trị mặc định?Tại sao việc triển khai thuộc tính phụ thuộc sẽ làm hỏng ứng dụng của tôi khi tôi cung cấp một giá trị mặc định?
Đoạn mã này nằm trong khai báo lớp cho đối tượng UserControl của tôi. Mọi thứ hoạt động tốt - nó biên dịch và chạy hoàn hảo.
public static System.Windows.DependencyProperty DepProp
= System.Windows.DependencyProperty.Register( "Rect",
typeof(System.Windows.Shapes.Rectangle),
typeof(FooControl));
public System.Windows.Shapes.Rectangle Rect
{
get
{ return ((System.Windows.Shapes.Rectangle)(GetValue(DepProp))); }
set
{ SetValue(DepProp, value); }
}
Tuy nhiên, khi tôi thêm các giá trị mặc định cho tài sản phụ thuộc:
mã biên dịch, nhưng tai nạn với một ngoại lệ gây tử vong khi nó cố gắng để nhanh chóng các UserControl.
Để tham khảo, mã của tôi bây giờ trông như thế này - với dòng PropertyMetaData thêm:
public static System.Windows.DependencyProperty DepProp
= System.Windows.DependencyProperty.Register( "Rect",
typeof(System.Windows.Shapes.Rectangle),
typeof(FooControl),
new System.Windows.PropertyMetadata(new System.Windows.Shapes.Rectangle()));
public System.Windows.Shapes.Rectangle Rect
{
get
{ return ((System.Windows.Shapes.Rectangle)(GetValue(DepProp))); }
set
{ SetValue(DepProp, value); }
}
Loại bỏ các PropertyMetadata từ cuộc gọi đến đăng ký() làm cho chương trình hoạt động hoàn hảo, không có tai nạn hoặc bất kỳ khác các vấn đề. Nhưng tôi cần giá trị mặc định cho mã sau. Làm cách nào để tôi chấp nhận giá trị mặc định mà không bị lỗi?
Khi nó bị treo, các ngoại lệ sau được hiển thị trong cửa sổ đầu ra:
A first chance exception of type 'System.ArgumentException' occurred in WindowsBase.dll
A first chance exception of type 'System.Reflection.TargetInvocationException' occurred in mscorlib.dll
A first chance exception of type 'System.Windows.Markup.XamlParseException' occurred in PresentationFramework.dll
tôi cần phải có được điều này làm việc càng sớm càng tốt, vì vậy bất kỳ lời khuyên sẽ là tuyệt vời!
Nếu bạn có theo dõi ngăn xếp, điều đó sẽ cực kỳ hữu ích. –
Thật sao? Tôi không biết nó có liên quan gì. Lemme xem những gì tôi có thể đến với ... Tôi có thể không nhận được xung quanh nó cho một chút - bận rộn trên một cái gì đó bức xúc. – Giffyguy