है, मैं ExpandoObject
से डेटा का उपयोग करके एक पंक्ति जोड़ना चाहता हूं, जो Dictionary<string, object>
के समान है। string
कॉलम का शीर्षलेख है और object
का मान स्तंभ का मान है। हर बार, जब मुझे नया डेटा मिलता है तो मैं एक नया GridView
बना रहा हूं, क्योंकि कॉलम की संख्या अलग हो सकती है। List
में MyItems सभी पंक्तियां Dictionary<string, object>
हैं, जिन्हें मैं अपने विचार में दिखाना चाहता हूं।सूचीदृश्य में कॉलम जोड़ें जिसमें एक छवि
List<Column> columns = new List<Column>();
myItemValues = (IDictionary<string, object>)myItems[0];
// Key is the column, value is the value
foreach (var pair in myItemValues)
{
Column column = new Column();
column.Title = pair.Key;
column.SourceField = pair.Key;
columns.Add(column);
}
view.Columns.Clear();
foreach (var column in columns)
{
Binding binding = new Binding(column.SourceField);
if (column.SourceField == "Icon")
{
view.Columns.Add(new GridViewColumn
{
Header = column.Title,
DisplayMemberBinding = binding,
CellTemplate = new DataTemplate(typeof(Image))
});
}
else
{
view.Columns.Add(new GridViewColumn { Header = column.Title, DisplayMemberBinding = binding });
}
}
डायरेक्ट इस के बाद मैं पंक्तियों को जोड़ने का प्रयास:
foreach (dynamic item in myItems)
{
this.listView.Items.Add(item);
}
मैं एक अन्य उद्देश्य के लिए इस solution को संशोधित करने के लिए tryed
यह कैसे मैं मेरे विचार में कॉलम जोड़ने है। यह समाधान, बहुत अच्छी तरह से काम करता है अगर मैं केवल प्रकार string
के मूल्यों को जोड़ना चाहते हैं, लेकिन अब मैं भी gridview में एक image
प्रदर्शित करना चाहते हैं, लेकिन अगर मैं अपने gridview करने के लिए एक जोड़ने के लिए, यह मेरे बस पता चलता है:
"System.Windows.Controls.Image"
अब मैं, जानना चाहते हैं कि मैं इतना के रूप में मैं एक gridview में किसी भी प्रकार के (या कम से कम images
और strings
) प्रदर्शित कर सकते हैं मेरे कोड को संशोधित कर सकते हैं या मेरे पास हैं एक पूरी तरह से नए तरीके का उपयोग करने के लिए और रास्ता होगा?
संपादित करें: पिछले दृष्टिकोणों में, यह कहा गया था, मैं एक नया DataTemplate
बनाने के लिए एक छवि दिखाने की जरूरत है, लेकिन मैंने पाया समाधान (Solution 1, Solution 2) में से कोई भी मेरे लिए काम कर रहा है।
'Ce सेट करने का प्रयास लूप में डेटा के प्रकार के आधार पर कॉलम के लिए llTemplate' जहां आप कॉलम बनाते हैं। यह एक कॉलम हमेशा एक ही प्रकार के डेटा दिखाता है। यदि डेटा का प्रकार पंक्ति से पंक्ति में बदल सकता है, तो आप 'CellTemplateSelector' जोड़ सकते हैं ताकि उचित टेम्पलेट का उपयोग किया जा सके। – Shadowed
मैंने एक नया 'डेटा टेम्पलेट' बनाया और 'टाइपटाइप' को 'टाइपऑफ (छवि)' पर सेट किया। क्या मुझे और गुण सेट करना है? क्योंकि मुझे अभी भी एक ही परिणाम मिल रहा है। – daniel59
मैंने डेटा टेम्पलेट बनाने के लिए इन समाधानों का प्रयास किया: http://stackoverflow.com/questions/248362/how-do-i-build-a-datatemplate-in-c-sharp-code और http://stackoverflow.com/प्रश्न/5471405/create-datatemplate-in-code-behind लेकिन उनमें से कोई भी मेरे लिए काम नहीं कर रहा है। तो मैं 'डेटा टेम्पलेट' कैसे बना सकता हूं जो 'ग्रिडव्यू' में 'छवियों' प्रदान करता है? – daniel59