मैं ListViewItem (मेरे मामले में पंक्ति) के चारों ओर एक सीमा बनाना चाहता हूं। रनटाइम के दौरान उत्पन्न स्रोत और कॉलम सूची देखें। XAML में मैं इस संरचना है:मैं ListViewItem पर सीमा कैसे जोड़ सकता हूं, GridView मोड में ListView
<ListView Name="listViewRaw">
<ListView.View>
<GridView>
</GridView>
</ListView.View>
</ListView>
रनटाइम के दौरान मैं DataTable को सूचीदृश्य बाँध, आवश्यक स्तंभों और बाइंडिंग जोड़ने:
var view = (listView.View as GridView);
view.Columns.Clear();
for (int i = 0; i < table.Columns.Count; i++)
{
GridViewColumn col = new GridViewColumn();
col.Header = table.Columns[i].ColumnName;
col.DisplayMemberBinding = new Binding(string.Format("[{0}]", i.ToString()));
view.Columns.Add(col);
}
listView.CoerceValue(ListView.ItemsSourceProperty);
listView.DataContext = table;
listView.SetBinding(ListView.ItemsSourceProperty, new Binding());
तो मैं प्रत्येक पंक्ति के चारों ओर बॉर्डर जोड़ना चाहते हैं, और सेट सीमा व्यवहार (रंग इत्यादि) डेटाट्रिगर्स के साथ (उदाहरण के लिए यदि पहले कॉलम में मूल्य = "दृश्यमान", काला रंग को काला रंग सेट करें)। क्या मैं आइटम टेम्पलेट में डेटा टेम्पलेट के माध्यम से सीमा डाल सकता हूं? मुझे समाधान पता है, जहां आप सेल टेम्पलेट्स के साथ हेरफेर करते हैं, लेकिन मुझे वास्तव में यह पसंद नहीं है। मुझे ऐसा कुछ चाहिए यदि यह भी संभव हो।
<DataTemplate>
<Border Name="Border" BorderBrush="Transparent" BorderThickness="2">
<ListViewItemRow><!-- Put my row here, but i ll know about table structure only during runtime --></ListViewItemRow>
</Border>
</DataTemplate>
धन्यवाद! मैंने डेटाटेम्प्लेट पर कई तरीकों से प्रयोग किया था, मुझे बस इसे नियंत्रण नियंत्रण में स्विच करना था, ओह एक और बात, ग्रिड व्यू के साथ, इसके बजाय ग्रिडव्यूआरओपेंटर का उपयोग करना चाहिए :) – Andrew