Ho appena trascorso diverse ore su un problema quando si utilizza VS2012, WPF 4.5 e dati di progettazione, in particolare l'attributo DesignInstance.DesignInstance che non funziona in VS2012
Obiettivo: volevo avere il supporto dei dati di progettazione nel mio progetto WPF (MVVM-based), sia in VS2012 e si fondono, e non ho potuto per la vita di me rendere l'approccio di lavoro MVVMLight costantemente .
Così ho provato a passare a "solo" utilizzando il supporto integrato per i dati di progettazione, utilizzando l'estensione di markup fornita con Blend.
Problema: Si consideri il seguente codice:
<Window x:Class="Nova.View.AlertsView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Nova.View"
xmlns:vm="clr-namespace:Nova.ViewModel"
mc:Ignorable="d"
DataContext="{Binding Alerts, Source={StaticResource Locator}}"
d:DataContext="{d:DesignInstance vm:DesignAlertsViewModel, IsDesignTimeCreatable=True}"
... />
Sia VS2012 e si fondono le relazioni "il nome DesignAlertsViewModel non esiste nello spazio dei nomi CLR-namespace: Nova.ViewModel", anche se intellisense risolve solo bene, e hai controllato migliaia di volte che lo spazio dei nomi e il nome della classe sono entrambi corretti.
Ho avuto problemi simili in precedenza e penso di dover commentare la riga problematica e compilare l'assembly, quindi funziona correttamente quando lo aggiungi nuovamente. – AlSki
Il mio unico altro suggerimento utilizza la sintassi completa e includo Tipo = ie d: DataContext = "{d: DesignInstance Type = vm: DesignAlertsViewModel, IsDesignTimeCreatable = True}" – AlSki
Grazie, @AlSki, ho _did_ provare la sintassi completa, ma senza fortuna. I dati in fase di progettazione vengono visualizzati inizialmente, ma alla fine smettono di funzionare (scompaiono semplicemente senza errori). Ho aggiornato la mia "soluzione" di seguito per essere una "soluzione alternativa", e farò qualche altra ricerca in questo. – Thomas