2014-05-23 20 views
5

jestem utrzymywanie starszych aplikacji WPF i jestem nowy w WPF więc być delikatny :) Na znaczniku window Mam następujący atrybut:„wartość nie może być null nazwa parametru pojemnik.” XAML

WindowState="{Binding Source={x:Static gui:GlobalWindowState.Instance}, Path=Maximized, Converter={StaticResource WindowStateConverter}}" 

gdy XAML jest otwarty widzę błąd:

"value cannot be null. parameter name container"

Kod kompiluje i wykonuje dobrze, a błąd pokazuje tylko gdy XAML jest otwarta. Ale widząc ten błąd, naprawdę przeszkadza mi to.

Google nie było zbyt pomocne. Zgaduję, że większość ludzi po prostu to ignoruje.

public object Convert(object value, Type targetType, object parameter, CultureInfo culture){ 
+3

Zobacz ślad stosu. Błąd najprawdopodobniej pochodzi z 'WindowStateConverter'. –

+0

Nie ma śladu stosu. Ten błąd pojawia się w visual studio, ale nie zatrzymuje kompilacji. Odchodzi także, gdy zamykam plik XAML. To mnie denerwuje, ale poza tym nie ma żadnego negatywnego wpływu. –

+0

Błędy są prawdopodobnie w twoim 'WindowStateConverter', cokolwiek to jest. W twoim kodzie nie ma wsparcia dla trybu projektowania, a więc jest on coraz bardziej popularny. Opublikuj kod tego konwertera. –

Odpowiedz

2

Proponuję, jeśli używasz MVVM projektowania-wzór i masz widok model dostępne dla tego kodu XAML, aby związać swoją WindowState na własność Państwa zdaniem model i napisać tę właściwość aby wyprowadzić wartość, której potrzebuje. Istnieją sposoby sprawdzenia w ramach właściwości widoku modelu, czy działa w czasie projektowania (tj. Wyświetlane w programie Visual Studio lub Blend) lub w czasie wykonywania. W ten sposób można łatwo kontrolować sposób wyświetlania XAML zarówno w środowisku wykonawczym, jak i w projektancie (Visual Studio). W obrębie swojej właściwości jawnie sprawdzasz wartości puste, aby usunąć ten błąd. Możesz dodać wyciągi z rejestrów, aby sprawdzić rzeczywistą operację.

Powiązane problemy