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

  • André Frizzo

    André Frizz

    16 Aralık 2006
  • Apple

    Apple

    22 HAZİRAN 2005
  • makemebad35

    makemebad35

    17 NİSAN 2006