Menentukan Mod Pelaksanaan WPF: DesignTime vs. Runtime
Adakah anda membangunkan aplikasi WPF dan memerlukan cara untuk membezakan antara masa reka bentuk (cth. , dalam Visual Studio atau Blend) dan pelaksanaan masa jalan? Jika ya, anda tidak bersendirian. Nasib baik, WPF menyediakan penyelesaian yang boleh dipercayai.
Mengenal pasti Mod Masa Reka Bentuk
WPF menawarkan sifat yang dipanggil DesignerProperties.GetIsInDesignMode(), yang mengambil DependencyObject sebagai parameternya. Dengan menggunakan sifat ini, anda boleh memastikan sama ada kod anda sedang dilaksanakan dalam mod reka bentuk.
// 'this' represents your UI element DesignerProperties.GetIsInDesignMode(this);
Apabila menyasarkan Silverlight atau WP7, sifat alternatif, DesignerProperties.IsInDesignTool, adalah lebih sesuai kerana GetIsInDesignMode kadangkala menghasilkan palsu positif dalam Visual Studio.
DesignerProperties.IsInDesignTool
Untuk WinRT, Aplikasi Metro dan Gedung Windows, yang setara ialah Windows.ApplicationModel.DesignMode.DesignModeEnabled:
Windows.ApplicationModel.DesignMode.DesignModeEnabled
Contoh Senario
Anda telah menyatakan keperluan untuk membezakan antara masa reka bentuk dan masa jalan dalam ViewModel anda untuk memaparkan sama ada data pelanggan olok-olok atau data langsung berdasarkan semasa mod.
Dengan memanfaatkan GetIsInDesignMode() dalam harta GetAll anda, anda boleh bertukar dengan lancar antara dua sumber data bergantung pada persekitaran pelaksanaan.
public ObservableCollection<Customer> GetAll { get { try { if (DesignerProperties.GetIsInDesignMode(this)) { return CustomerDesign.GetAll; } else { return Customer.GetAll; } } catch (Exception ex) { throw new Exception(ex.Message); } } }
Pendekatan ini menyediakan cara yang mudah dan fleksibel untuk mengurus data berdasarkan konteks pelaksanaan aplikasi.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menentukan sama ada Aplikasi WPF Saya Berjalan dalam Mod Reka Bentuk atau Masa Jalan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!