मेरे यूआई:GridViewColumn चौड़ाई समायोजन
<ListView Name="persons" SelectionChanged="persons_SelectionChanged">
<ListView.View>
<GridView AllowsColumnReorder="False">
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Name}" Width="auto"/>
<GridViewColumn Header="Age" DisplayMemberBinding="{Binding Age}" Width="auto"/>
</GridView>
</ListView.View>
</ListView>
मेरी यूआई के codebehind:
internal void Update(IEnumerable<Person> pers)
{
this.persons.ItemsSource = null;
this.persons.ItemsSource = pers;
UpdateLayout();
}
मेरे संस्थाओं:
class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
GridViewColumns GridViewColumn-हैडर की चौड़ाई है। भले ही मैं एक लंबे नाम वाले व्यक्तियों के साथ अद्यतन() को कॉल करता हूं। कॉलम का आकार बदल नहीं आता है।
ए) मैं सबसे लंबे नाम की लंबाई में स्वचालित रूप से "नाम" - कॉलम का आकार कैसे बदल सकता हूं (जब मैं अद्यतन कहलाता हूं), लेकिन मान x से अधिक नहीं (मैं कॉलम की अधिकतम चौड़ाई निर्दिष्ट करना चाहता हूं) ?
ख) मैं कैसे है कि "आयु" -Column control's अंत (ताकि gridview के स्तंभों नियंत्रण की पूरी चौड़ाई का उपयोग करता है) के लिए स्थान को भरता निर्दिष्ट कर सकते हैं?
मुझे पता है कि यह बहुत पुराना है, लेकिन मैं हाइलाइट करना चाहता हूं, 'कॉलमविड्थ' फिक्स का समय कितना महत्वपूर्ण है और यह सही ढंग से लागू होने पर वास्तव में अच्छा काम करता है। सुनिश्चित करें कि ग्रिड व्यू कंटेनर लोड और दृश्यमान है। मेरे पास एक विस्तारक के अंदर एक ग्रिड व्यू का एक बहुत बुरा संयोजन था जो वर्चुअलाइजिंग पेरेंट कंट्रोल के बदले में था। मतलब, ऑफ़-स्क्रीन होने के दौरान एक आकार बदलना शून्य चौड़ाई उत्पन्न करेगा और जब टेम्पलेट को विभिन्न डेटा के लिए पुनर्नवीनीकरण किया गया था तो आइटम बदल सकते थे। अब मैं अपने समाधान से बहुत खुश हूं। – grek40