मुख्य सीमा आप WPF के सभी शक्तिशाली सुविधाओं ढीला है जो: Data binding
, ControlTemplates
और DataTemplates
, अनंत आकार, Zooms/घुमाव, Opacity
, Attached Properties
, बस कुछ ही नाम है। छोड़ने के लिए बहुत कुछ है! आपको पुरानी थकाऊ और त्रुटि-प्रवण WinForms तकनीकों का उपयोग करके इन नियंत्रणों को प्रोग्राम करना होगा, और उन सभी सीमाओं के साथ फिर से सौदा करना होगा जिन्हें आपने कई वर्षों से मुक्त किया था।
DataGridView
नेट फ्रेमवर्क 3.5 एसपी 1 एक DataGrid
कि काम करते हैं हो सकता है, और तीसरे पक्ष के नियंत्रण के कई Xceed से एक के रूप में इस तरह के लिए कर रहे हैं। एक डब्ल्यूपीएफ-आधारित ग्रिड का उपयोग करने से ग्रिड के अंदर पूर्ण डेटा बाध्यकारी, टेम्पलेटिंग और स्टाइलिंग की अनुमति मिलती है, यदि आप WinForms 'DataGridView का उपयोग करते हैं तो यह संभव नहीं होगा।
PropertyGrid
कारण WPF एक PropertyGrid
साथ नहीं आता है कि इसे का उपयोग क्या WPF से मिलने वाली पुनः बनाना इतना आसान है: एक साधारण लिस्टबॉक्स, क्या करेंगे ठीक से स्टाइल, केवल कुछ ही लाइनों के साथ कोड के पीछे।
एक WPF PropertyGrid
कार्यान्वयन का उपयोग करने में सुंदरता है कि आप गुण आप संपादन कर रहे पेश करने के लिए टेम्पलेट का उपयोग कर सकते हैं, और सबसे महत्वपूर्ण बात आप बस कुछ बाइंडिंग के साथ XAML में उन्हें व्यक्त करने से नई संपत्ति संपादकों जोड़ सकते हैं। उदाहरण के लिए, हमारी संपत्ति ग्रिड में से किसी एक में संपत्तियों को स्लाइडर्स के साथ सेट किया गया है, और यह होने के लिए एक्सएएमएल की केवल पांच पंक्तियां थीं।इस यह बहुत जल्दी और आसानी से XAML की कुछ लाइनें साथ PropertyGrid
की पूरी रंगरूप को दोहराने के लिए है के साथ
public class PropertyGrid
{
...
public static readonly DependencyProperty SelectedObjectProperty = ...
{
PropertyChangedCallback = (obj, e) =>
{
PropertyItems =
from pi in SelectedObject.GetType().GetProperties()
select new PropertyGridItem { Object = SelectedObject, PropertyInfo = pi };
}
}
}
public class PropertyInfo
{
public object Object;
public PropertyInfo PropertyInfo;
public object Value
{
get { return PropertyInfo.GetValue(Object); }
set { PropertyInfo.SetValue(Object, value); }
}
public string Category
{
get
{
return (
from attrib in PropertyInfo.GetCustomAttributes().OfType<CategoryAttribute>()
select attrib.Name
).FirstOrDefault();
}
}
}
:
यहाँ कुछ WPF में एक PropertyGrid को लागू करने के पीछे महत्वपूर्ण अवधारणाओं को दर्शाता हुआ कोड है: श्रेणी द्वारा समूहबद्ध करने के साथ बस एक सूची बॉक्स का उपयोग करें, और ItemTemplate
जिसमें DockPanel
शामिल है जिसमें संपत्ति संपादक को मुद्रित करने के लिए एक निश्चित चौड़ाई TextBlock
और ContentPresenter
शामिल है।
स्रोत
2009-11-12 07:17:28
हालांकि मैंने घर से उगाए गए प्रॉपर्टीग्रिड का उपयोग किया है, लेकिन आप फ्रैंसी पेनोव का उल्लेख करते हुए कोडप्लेक्स पर भी एक को देखना चाहेंगे। –