Adakah yang tahu tentang beberapa variabel kondisi global yang tersedia sehingga saya dapat memeriksa apakah kode tersebut sedang dijalankan dalam mode desain (misalnya dalam Blend atau Visual Studio) atau tidak?
Akan terlihat seperti ini:
//pseudo code:
if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode)
{
...
}
Alasan saya membutuhkan ini adalah: ketika aplikasi saya ditampilkan dalam mode desain di Expression Blend, saya ingin ViewModel sebagai gantinya menggunakan "kelas Pelanggan Desain" yang memiliki data tiruan di dalamnya yang dapat dilihat oleh perancang dalam mode desain.
Namun, ketika aplikasi benar-benar dieksekusi, saya tentu saja menginginkan ViewModel untuk menggunakan kelas Pelanggan nyata yang mengembalikan data nyata.
Saat ini saya memecahkan masalah ini dengan meminta desainernya, sebelum ia mengerjakannya, masuk ke ViewModel dan ubah "ApplicationDevelopmentMode.Executing" menjadi "ApplicationDevelopmentMode.Designing":
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);
}
}
}