Gibt es eine Möglichkeit zu überprüfen, ob WPF derzeit im Entwurfsmodus ausgeführt wird oder nicht?

Kennt jemand einige global state variables, die verfügbar ist, damit ich überprüfen kann, ob der code aktuell ausgeführt wird im design-Modus (z.B. im Blend oder Visual Studio) oder nicht?

Es würde in etwa so Aussehen:

//pseudo code:
if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode) 
{
    ...
}

Der Grund, warum ich brauchen, ist dies: wenn meine Anwendung im design-Modus in Expression Blend, ich will das ViewModel zu verwenden "Design-Customer-Klasse", die mock-Daten, dass die designer-Ansicht im design-Modus.

Jedoch, wenn die Anwendung tatsächlich ausgeführt wird, ich natürlich will das ViewModel zu verwenden, die realen Kunden-Klasse gibt echte Daten.

Derzeit ich dieses Problem lösen, indem der designer, bevor er ihn bearbeitet, gehen Sie in das ViewModel und ändern "ApplicationDevelopmentMode.Ausführung" "ApplicationDevelopmentMode.Gestaltung":

public CustomersViewModel()
{
    _currentApplicationDevelopmentMode = ApplicationDevelopmentMode.Designing;
}

public ObservableCollection<Customer> GetAll
{
    get
    {
        try
        {
            if (_currentApplicationDevelopmentMode == ApplicationDevelopmentMode.Developing)
            {
                return Customer.GetAll;
            }
            else
            {
                return CustomerDesign.GetAll;
            }
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }
}

InformationsquelleAutor der Frage Edward Tanguay | 2009-05-07

Schreibe einen Kommentar