इस का उत्तर नहीं मिला।WPF - प्रोग्रामेटिक रूप से जोड़े गए GridViewColumns के लिए DataTemplate सेट करें
मेरे पास एक WPF ListView नियंत्रण है जिसमें विभिन्न कॉलम हो सकते हैं। उदाहरण के लिए, यह ग्राहक डेटा प्रदर्शित कर सकता है, कॉलम आईडी, नाम, ईमेल इत्यादि प्रदर्शित कर सकता है, या इसमें उत्पादों, आईडी, नाम, मूल्य, संख्याइनस्टॉक, निर्माता, अच्छी तरह से प्रदर्शित करने वाले उत्पाद शामिल हो सकते हैं, आपको विचार मिलता है: कॉलम की अलग-अलग संख्या, अलग-अलग नाम।
मैं क्या करना चाहता हूं, कुछ स्तंभों के लिए डेटा को अलग-अलग प्रदर्शित करना है। उदाहरण के लिए, कॉलम नंबरइनस्टॉक के मान के रूप में 'हां' या 'नहीं' प्रिंट करने की बजाय, मैं एक साफ छवि प्रदर्शित करना चाहता हूं।
यदि मेरे पास निश्चित नामों के साथ निश्चित कॉलम होंगे, तो मैं देखता हूं कि यह कैसे आसान है। बस उस विशेष कॉलम के लिए डेटा टेम्पलेट को परिभाषित करें और मैं इसका उपयोग अपने कॉलम के दृश्य को परिभाषित करने के लिए करता हूं। हालांकि, मैं नहीं देख सकता कि यह मेरी स्थिति में कैसे किया जाए।
मैं WPF के लिए बहुत नया हूं, इसलिए मेरा दृष्टिकोण खराब होने पर मुझे क्षमा करें :-) मेरे एक्सएएमएल में, मैंने एक सूची दृश्य नियंत्रण परिभाषित किया है, जो कि काफी खाली है। पीछे मेरी कोड में, मैं का उपयोग करें:
// get all columns from my objects (which can be either a Customer of Product)
foreach (string columnName in MyObject.Columns)
{
GridViewColumn column = new GridViewColumn();
// Bind to a property of my object
column.DisplayMemberBinding = new Binding("MyObject." + columnName);
column.Header = columnName;
column.Width = 50;
// If the columnname is number of stock, set the template to a specific datatemplate defined in XAML
if (columnName == "NumberInStock")
column.CellTemplate = (DataTemplate)FindResource("numberInStockImageTemplate");
explorerGrid.Columns.Add(column);
}
ठीक है, मुझे यकीन है कि यह एक सा खूबसूरत किया जा सकता है (यदि आप को कोई सलाह है, तो कृपया!), लेकिन सबसे बड़ी समस्या यह है कि मैं किसी भी नहीं देख सकते हैं कॉलम में अंतर। यह सिर्फ 'NumberInStock' कॉलम का टेक्स्ट मान प्रदर्शित करता है। मेरे DataTemplate XAML में परिभाषित किया गया है:
<Window.Resources>
<DataTemplate x:Name="NumberInStock" x:Key="NumberInStock">
<Border BorderBrush="Red" BorderThickness="2.0">
<DockPanel>
<Image Width="24" Height="24" Margin="3,0" Source="..\Images\instock.png" />
</DockPanel>
</Border>
</DataTemplate>
</Window.Resources>
बेशक
, मैं अभी भी कार्यक्षमता है कि यह प्रदर्शित होता जोड़ना होगा एक 'हां' या 'नहीं' छवि NumberInStock के मूल्य के आधार हैं, लेकिन वह कदम है 2 वास्तव में। मुझे अपनी सूची दृश्य में एक छवि और लाल सीमा देखने में खुशी होगी!
अग्रिम धन्यवाद, रेज़ी
धन्यवाद, यह वास्तव में समस्या की तरह दिखता है। एसपी 1 के साथ आने वाले डेटाग्रिड नियंत्रण का उपयोग करने के लिए मैंने पहले से ही अपना कोड संपादित किया है। वैसे भी मेरी स्थिति में यह अधिक उपयुक्त हो सकता है। लेकिन यह निश्चित रूप से सही समाधान है। बहुत धन्यवाद! – Razzie