มีใครรู้บ้างเกี่ยวกับตัวแปรสถานะโกลบอลบางตัวที่มีอยู่เพื่อให้ฉันสามารถตรวจสอบว่ารหัสกำลังทำงานอยู่ในโหมดการออกแบบ (เช่นใน Blend หรือ Visual Studio) หรือไม่?
มันจะมีลักษณะเช่นนี้:
//pseudo code:
if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode)
{
...
}
เหตุผลที่ฉันต้องการ: เมื่อแอปพลิเคชันของฉันถูกแสดงในโหมดการออกแบบใน Expression Blend ฉันต้องการให้ ViewModel ใช้ "Design Customer class" แทนซึ่งมีข้อมูลจำลองอยู่ในนั้นซึ่งนักออกแบบสามารถดูในโหมดการออกแบบ
อย่างไรก็ตามเมื่อแอปพลิเคชั่นกำลังดำเนินการจริง ๆ ฉันต้องการให้ ViewModel ใช้คลาสลูกค้าจริงซึ่งส่งคืนข้อมูลจริง
ขณะนี้ฉันแก้ปัญหานี้โดยมีผู้ออกแบบก่อนที่เขาจะทำงานให้ไปที่ ViewModel และเปลี่ยน "ApplicationDevelopmentMode.Executing" เป็น "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);
}
}
}