Windows Forms DataGridView Denetiminde Sanal Mod
Sanal mod ile denetim ile özel veri önbelleği arasındaki DataGridView etkileşimi yönetebilirsiniz. Sanal modu uygulamak için özelliğini true
olarak ayarlayın VirtualMode ve bu konuda açıklanan olaylardan birini veya daha fazlasını işleyebilir. Genellikle en azından CellValueNeeded
olayı işlersiniz ve bu da denetimin veri önbelleğindeki değerleri aramasını sağlar.
Bağlı Mod ve Sanal Mod
Sanal mod yalnızca bağlı modu eklemeniz veya değiştirmeniz gerektiğinde gereklidir. İlişkili modda özelliğini ayarlarsınız DataSource ve denetim belirtilen kaynaktan verileri otomatik olarak yükler ve kullanıcı değişikliklerini ona geri gönderir. İlişkili sütunlardan hangilerinin görüntüleneceğini denetleyebilirsiniz ve veri kaynağının kendisi genellikle sıralama gibi işlemleri işler.
İlişkili Modun Desteklenmesi
İlişkili sütunlarla birlikte ilişkisiz sütunları görüntüleyerek bağlama modunu tamamlayabilirsiniz. Buna bazen "karma mod" adı verilir ve hesaplanan değerler veya kullanıcı arabirimi (UI) denetimleri gibi öğeleri görüntülemek için kullanışlıdır.
İlişkisiz sütunlar veri kaynağının dışında olduğundan, veri kaynağının sıralama işlemleri tarafından yoksayılır. Bu nedenle, karma modda sıralamayı etkinleştirdiğinizde, ilişkisiz verileri yerel önbellekte yönetmeniz ve denetimin DataGridView onunla etkileşim kurmasına izin vermek için sanal mod uygulamanız gerekir.
İlişkisiz sütunlardaki değerleri korumak için sanal modu kullanma hakkında daha fazla bilgi için özellik ve System.Windows.Forms.DataGridViewComboBoxColumn sınıf başvurusu konularındaki örneklere DataGridViewCheckBoxColumn.ThreeState bakın.
İlişkili Modu Değiştirme
Bağlı mod performans gereksinimlerinizi karşılamıyorsa, sanal mod olay işleyicileri aracılığıyla özel önbellekteki tüm verilerinizi yönetebilirsiniz. Örneğin, en iyi performans için gereken kadar ağlı veritabanından yalnızca veri alan tam zamanında veri yükleme mekanizması uygulamak için sanal modu kullanabilirsiniz. Bu senaryo, yavaş bir ağ bağlantısı üzerinden veya sınırlı miktarda RAM veya depolama alanına sahip istemci makinelerinde büyük miktarda veriyle çalışırken özellikle yararlıdır.
Sanal modu tam zamanında bir senaryoda kullanma hakkında daha fazla bilgi için bkz . Windows Forms DataGridView Denetiminde Tam Zamanında Veri Yükleme ile Sanal Modu Uygulama.
Sanal Mod Olayları
Verileriniz salt okunursa, CellValueNeeded
işlemeniz gereken tek olay olay olabilir. Ek sanal mod olayları, kullanıcı düzenlemeleri, satır ekleme ve silme ve satır düzeyi işlemler gibi belirli işlevleri etkinleştirmenize olanak tanır.
Bazı standart DataGridView olaylar (örneğin, kullanıcılar satır eklediğinde veya sildiğinde ya da hücre değerleri düzenlendiğinde, ayrıştırıldığında, doğrulandığında veya biçimlendirildiğinde gerçekleşen olaylar gibi), sanal modda da yararlıdır. Ayrıca, araç ipucu metni, hücre ve satır hata metni, hücre ve satır kısayolu menü verileri ve satır yüksekliği verileri gibi normalde bağlı bir veri kaynağında depolanmayan değerleri korumanıza olanak sağlayan olayları da işleyebilirsiniz.
Okuma/yazma verilerini satır düzeyi işleme kapsamıyla yönetmek için sanal mod uygulama hakkında daha fazla bilgi için bkz . İzlenecek Yol: Windows Forms DataGridView Denetiminde Sanal Modu Uygulama.
Hücre düzeyinde işleme kapsamına sahip sanal mod uygulayan bir örnek için özellik başvurusu konusuna VirtualMode bakın.
Aşağıdaki olaylar yalnızca VirtualMode özelliği olarak true
ayarlandığında gerçekleşir.
Olay | Tanım |
---|---|
CellValueNeeded | Denetim tarafından, görüntülenmek üzere veri önbelleğinden bir hücre değeri almak için kullanılır. Bu olay yalnızca ilişkisiz sütunlardaki hücreler için gerçekleşir. |
CellValuePushed | Denetim tarafından bir hücrenin kullanıcı girişini veri önbelleğine işlemek için kullanılır. Bu olay yalnızca ilişkisiz sütunlardaki hücreler için gerçekleşir. Geçerli değerin denetimde UpdateCellValue görüntülendiğinden emin olmak ve geçerli durumdaki otomatik boyutlandırma modlarını uygulamak için bir olay işleyicisi CellValuePushed dışında önbelleğe alınmış bir değeri değiştirirken yöntemini çağırın. |
NewRowNeeded | Denetim tarafından veri önbelleğinde yeni bir satıra ihtiyaç olduğunu belirtmek için kullanılır. |
RowDirtyStateNeeded | Bir satırda kaydedilmemiş değişiklikler olup olmadığını belirlemek için denetim tarafından kullanılır. |
CancelRowEdit | Bir satırın önbelleğe alınmış değerlerine geri döndürülmesi gerektiğini belirtmek için denetim tarafından kullanılır. |
Aşağıdaki olaylar sanal modda kullanışlıdır, ancak özellik ayarından VirtualMode bağımsız olarak kullanılabilir.
Ekinlikler | Tanım |
---|---|
UserDeletingRow UserDeletedRow RowsRemoved RowsAdded |
Denetim tarafından satırların ne zaman silindiğini veya eklendiğini belirtmek için kullanılır ve veri önbelleğini uygun şekilde güncelleştirmenizi sağlar. |
CellFormatting CellParsing CellValidating CellValidated RowValidating RowValidated |
Denetim tarafından görüntüleme için hücre değerlerini biçimlendirmek ve kullanıcı girişini ayrıştırmak ve doğrulamak için kullanılır. |
CellToolTipTextNeeded | Özellik ayarlandığında veya VirtualModetrue özelliği olduğunda ToolTip hücre metnini DataSource almak için denetim tarafından kullanılır.Hücre Aracı İpuçları yalnızca özellik değeri olduğunda ShowCellToolTips true görüntülenir. |
CellErrorTextNeeded RowErrorTextNeeded |
Özellik ayarlandığında veya VirtualModetrue özelliği olduğunda hücre veya satır hata metnini DataSource almak için denetim tarafından kullanılır.Geçerli değerin UpdateCellErrorText denetimde UpdateRowErrorText görüntülendiğinden emin olmak için hücre veya satır hata metnini değiştirdiğinizde yöntemini veya yöntemini çağırın. ve özellik değerleri olduğunda ShowCellErrors hücre ve ShowRowErrors satır hatası glifleri true görüntülenir. |
CellContextMenuStripNeeded RowContextMenuStripNeeded |
Denetim özelliği ayarlandığında veya özelliği true olduğunda bir hücreyi veya VirtualMode satırı ContextMenuStrip almak için denetim DataSource tarafından kullanılır. |
RowHeightInfoNeeded RowHeightInfoPushed |
Denetim tarafından veri önbelleğinde satır yüksekliği bilgilerini almak veya depolamak için kullanılır. Geçerli değerin denetimin UpdateRowHeightInfo görüntüsünde kullanıldığından emin olmak için, önbelleğe alınmış satır yüksekliği bilgilerini bir RowHeightInfoPushed olay işleyicisi dışında değiştirirken yöntemini çağırın. |
Sanal Modda En İyi Yöntemler
Büyük miktarda veriyle verimli bir şekilde çalışmak için sanal modu uyguluyorsanız, denetimin kendisiyle verimli bir şekilde çalıştığından DataGridView da emin olmak istersiniz. Hücre stillerinin verimli kullanımı, otomatik boyutlandırma, seçimler ve satır paylaşımı hakkında daha fazla bilgi için bkz . Windows Forms DataGridView Denetimini Ölçeklendirmeye Yönelik En İyi Yöntemler.
Ayrıca bkz.
- DataGridView
- VirtualMode
- Windows Forms DataGridView Denetiminde Performans Ayarlaması
- Windows Forms DataGridView Denetimini Ölçeklendirme için En İyi Yöntemler
- İzlenecek yol: Windows Forms DataGridView Denetiminde Sanal Modu Çalıştırma
- Windows Forms DataGridView Denetiminde Zamanında Veri Yükleme ile Sanal Modu Uygulama
.NET Desktop feedback
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin