Có ai biết một số biến trạng thái toàn cầu có sẵn để tôi có thể kiểm tra xem mã hiện đang thực thi trong chế độ thiết kế (ví dụ như trong Blend hoặc Visual Studio) hay không?
Nó sẽ trông giống như thế này:
//pseudo code:
if (Application.Current.ExecutingStatus == ExecutingStatus.DesignMode)
{
...
}
Lý do tôi cần điều này là: khi ứng dụng của tôi được hiển thị ở chế độ thiết kế trong Expression Blend, tôi muốn ViewModel thay vào đó sử dụng "Lớp khách hàng thiết kế" có dữ liệu giả mà nhà thiết kế có thể xem trong chế độ thiết kế.
Tuy nhiên, khi ứng dụng thực sự đang thực thi, tất nhiên tôi muốn ViewModel sử dụng lớp Khách hàng thực trả về dữ liệu thực.
Hiện tại tôi giải quyết vấn đề này bằng cách có nhà thiết kế, trước khi anh ta làm việc với nó, đi vào ViewModel và thay đổi "ApplicationDevelopmentMode.Executing" thành "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);
}
}
}