Istnieje pewna klasa błędów, których rozwiązanie sprowadza się do edycji (lub przeniesienia) jednej linijki kodu. Do tych błędów należy ten, który udało mi się ostatnimi czasy popełnić (hmm… nie podam dokładnie kiedy, bo za cholerę nie jestem w stanie sobie przypomnieć daty urodzenia napisanego z rąsi ostatniego kawałku kodu). Ok, nie był do końca napisany ręcznie, bo użyłam snippetu „propdp”, który służy do genowania propert które sobie możemy użyć potem z poziomu XAMLa chociażby.
Tak wygląda ów snippet przed wyedytowaniem (po double tab):
public int MyProperty { get { return (int)GetValue(MyPropertyProperty); } set { SetValue(MyPropertyProperty, value); } } // Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc... public static readonly DependencyProperty MyPropertyProperty = DependencyProperty.Register("MyProperty", typeof(int), typeof(ownerclass), new PropertyMetadata(0));
No ja chcę boola raczej nie inta, więc poprawiam sobie po kolei i dostaję coś takiego
public bool CzyMaBycZaladowane { get { return (bool)GetValueCzyMaBycZaladowaneProperty); } set { SetValue(CzyMaBycZaladowaneProperty, value); } } //Ten komentarz oczywiście wyrzuciłam bo mi po co public static readonly DependencyProperty CzyMaBycZaladowaneProperty = DependencyProperty.Register("CzyMaBycZaladowane", typeof(bool), typeof(MojeOkienko), new PropertyMetadata(0));
z grubsza tak to wyglądało.
Naciskam ten zielony trójkącik, pewna że zadziałać powinno, z resztą robię to nie po raz pierwszy i … auć, coś się popsuło.
Dostałam na twarz tytułowego TypeInitializationException.
Pierwsza reakcja …. nie no, to trza ocenzurować, bo wpis mogą czytać dzieci., ale kiedy już opanowałam słowotok złożony z słów podkreślanych w wordzie na czerwono i opanowałam falę autoagresji postanowiłam, że zanim użyję funkcji „search error in stack overflow” w moim kochanym VS przeczytam co mówi „exception message”.
Generalnie chodziło o to, że miał problem… z rzutowaniem zera:p No tak, zapomniałam zmienić wartość domyślną. Głupia i roztargniona blondynko- PropertyMetadata ma przyjąć false jako wartość domyślną:)
Końcówka więc powinna wyglądać tak:
public static readonly DependencyProperty CzyMaBycZaladowaneProperty = DependencyProperty.Register("CzyMaBycZaladowane", typeof(bool), typeof(MojeOkienko), new PropertyMetadata(false));
No i tyle w temacie.
One Comment
TypeInitializationException – xaml
Dziękujemy za dodanie artykułu – Trackback z dotnetomaniak.pl
Comments are closed.