GridView ile çok fazla çalışmadım ve bununla uğraştıktan sonra, ihtiyacım olandan daha karmaşık, ancak bunu beklediğim bazı temel yetenekleri eksik buluyorum. Kuşkusuz bu uygulama, özellikle de bunu bildirimde bulunduğunda, veri kümesine bağlı kalma zamanının% 90'ı dikkate alındığında anlamlıdır, ancak ben bunu bir IEnumerable<T>
koduna bağlamayı düşünmekteyim. Ben gerekenlerKendi GridView uygulamamı yazmalı mıyım?
kolayca aşağıdakileri yapmak için yeteneğidir
- a) sütunlar türden yalnızca belirli özelliklere sınırlandırılabilir bir
IEnumerable<T>
bağlanabilirT
- b) dönmek için sorgulanabilir her satır bir hücre olabilir onun satırların bir koleksiyon hücre güzel olurdu aşağıdaki arabirim uygulama
için temelde bir şey bağlıydı, bu özelliğe göre aranır
public interface IEasyGridBinder {
void Bind<T>(IEnumerable<T> bindableObjects, params string[] propertiesToBind);
IList<IDictionary<string, string>> Values {get;}
}
Yani bu olsun, ben GridView devralır ve bu arayüzü uygulayan ya da ben sadece yabancıyım bunları yapmak için gerçekten çok basit bir yolu vardır kendi özel EasyGridBinder yazmalıyım?
P.S.
Takip eden soru Bonus puan Ben
myGrid.Bind(myEntities, e=>{e.Id; e.Name; e.Customer.Name;});
gibi bir şey yazabilirsiniz Ama eğer ben ifadeler
üzerinde okuduktan sonra kendimi anlamaya varsayalım: orijinal verileri almak için bir yolu var mı bu ızgara görünümüne girdi ve html'ye dönüştürülmedi mi? Bir giriş boş bir dize olarak alınan alan varsa, hücre " " içeriyor gibi görünüyor, yani boş bir dize ve boşluk girdisi arasında ayrım yapmak için bir yolu yok mu? Bu gerçekten de durum buysa, muhtemelen GridView'ın işlevselliğinin çoğunu yeniden uygulayacağım.
Aslında hiç kimse bu sorun için iyi bir çözümün bulunmadığı konusunda çok şaşırıyorum. Sanırım bu gece önümde bir işim var, bu birkaç gündür demomu engellemeye başladı. Muhtemelen bu kodu google kodunda yayınlayacağım –