/ / Blend nie może wyświetlić danych o czasie projektowania, które może wyświetlać program Visual Studio 2010 - wpf, visual-studio-2010, expression-blend-4

Funkcja Blend nie może wyświetlić danych o czasie projektowania wyświetlanych w programie Visual Studio 2010 - wpf, visual-studio-2010, expression-blend-4

Spojrzałem na Inne pytaniejednak błąd, który otrzymuję, jest bardziej szczegółowy.

Te przykładowe dane używają modelu widoku, który nie ma domyślnego konstruktora bez parametrów, ale ma publicznie sparametryzowany.

Uważam, że dane dotyczące czasu projektowania używają refleksjii powinno być w stanie sobie z tym poradzić (ponieważ tak naprawdę nie tworzy instancji klasy), dlatego mylą mnie, dlaczego dostaję następujący błąd w czasie projektowania:

Typ "AccessDeniedViewModel" nie zawiera żadnych dostępnych konstruktorów.

Linia w moim XAML, która zawiera dane czasu projektu d:DataContext="{d:DesignData /SampleData/AccessDeniedViewModelSampleData.xaml}". Użyłem Blend "s Utwórz przykładowe dane z klasy ...", aby wygenerować ten plik danych.

Jednak po otwarciu tego widoku w Visual Studio 2010 jest on w stanie wyświetlić go wraz z danymi dotyczącymi czasu projektowania.

Naprawdę nie chcę umieszczać konstruktorów bez parametrów tylko do użytku w czasie projektowania, jakikolwiek sposób uzyskania tych danych projektowych pracujących w Blend byłby bardzo doceniony.

EDYTOWAĆ: Powinienem też wspomnieć o tym, że wsparcie wiązania nadal istnieje, kiedy dodam powiązania do widoku, dostępne właściwości są wymienione, tak jak to rozwiązuje poprawny typ, po prostu nie można go utworzyć.

Odpowiedzi:

2 dla odpowiedzi № 1

Musisz podać domyślny konstruktor. Oto dlaczego: Dlaczego klasa XML-Serializable potrzebuje konstruktora bez parametrów

Jedyną inną opcją, o której myślę, to pisanie logiki w konstruktorze widoku, który ładuje xaml w czasie projektowania, dzięki czemu można wywoływać sparametryzowane wersje konstruktorów.