SORU
7 Mayıs 2009, PERŞEMBE


Bir şekilde WPF şu anda Tasarım modunda çalışan olup olmadığını kontrol etmek için var mı?

Eğer kodu şu anda tasarım modu (Karışımı gibi veya Visual Studio) yürütülüyorsa kontrol edebilirsiniz böylece mevcut ya da değil, bazı küresel durum değişkeni biliyor mu?

Bu gibi bir şey olurdu:

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

Bu nedenle ihtiyacım olan şu: ne zaman bir uygulama olduğunu gösterdi Tasarım modunda Expression Blend, istediğim ViewModel için kullanmak yerine bir "Tasarım Müşteri sınıfı" olan sahte veriler bunun bir tasarımcısı olabilir görünümünde tasarım modu.

Uygulama aslında yürütülüyor ancak, tabii ki ben ViewModel gerçek veri döndüren gerçek Müşteri sınıfı kullanmak istiyorum.

Ben tasarımcısı alarak bu çözüm şu anda üzerinde çalışıyor önce, ViewModel girip "ApplicationDevelopmentMode değiştirin.Yürütme" için "ApplicationDevelopmentMode.": . Tasarımı

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);
        }
    }
}

CEVAP
7 Mayıs 2009, PERŞEMBE


Bir DependencyObject alır GetIsInDesignMode, aradığınız inanıyorum.

Yani.

// 'this' is your UI element
DesignerProperties.GetIsInDesignMode(this);

Düzenleme:Silverlight kullanırken GetIsInDesignMode beri IsInDesignTool kullanmalısınız / WP7, bazen Visual Studio yanlış olsa geri dönmeyecek

DesignerProperties.IsInDesignTool

Düzenleme:Ve son olarak, bütünlüğü faiz, WinRT / Metro / Windows Mağazası uygulamaları eşdeğer DesignModeEnabled:

Windows.ApplicationModel.DesignMode.DesignModeEnabled

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FD2097

    FD2097

    21 HAZİRAN 2009
  • We've moved!

    We've moved!

    7 Ocak 2008
  • UCBerkeley

    UCBerkeley

    3 Mayıs 2006