में विफल रहता है मेरे पास एक सूची बॉक्स है जिसमें UserControl से व्युत्पन्न आइटम शामिल हैं। कंक्रीट UserControl में डेटाग्रिड (दूसरों के बीच) शामिल है। असल में मैं कंक्रीट UserControl नहीं बदल सकता (केवल परीक्षण उद्देश्य के लिए परिवर्तन; इसकी तीसरी पार्टी की तरह)। जैसे ही एक कॉलम चौड़ाई "*" पर सेट की जाती है, सभी कॉलम की डेटाग्रिड कॉलम चौड़ाई टूट जाती है, जो पूर्ण स्थान को भरने के लिए आवश्यक होती है।wpf डेटाब्रिड कॉलम चौड़ाई ListBox
मैं इसे एक सरलीकृत उदाहरण (w/o UserControl) के साथ पुन: उत्पन्न कर सकता हूं। इसलिए यदि मैं ListBoxItem के रूप में डेटाग्रिड जोड़ता हूं, तो कॉलम चौड़ाई को "*" की कॉलम चौड़ाई निर्दिष्ट करता है। बीटीडब्लू, कॉलम को उपयोगकर्ता द्वारा अब भी आकार में नहीं बदला जा सकता है।
सरल उदाहरण:
<Window x:Class="DataGridSpike.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ListBox HorizontalContentAlignment="Stretch" >
<!-- Column width is basically ok but only since not "*" -->
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Header="Column1"/>
<DataGridTextColumn Header="Column2"/>
<DataGridTextColumn Header="Column3"/>
</DataGrid.Columns>
</DataGrid>
<!-- Broken column width: -->
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Header="Column1"/>
<DataGridTextColumn Header="Column2" Width="*"/>
<DataGridTextColumn Header="Column3"/>
</DataGrid.Columns>
</DataGrid>
</ListBox>
</Grid>
किसी को भी पता है कि यह कैसे तय करने के लिए?
सम्मान
मुझे डर है कि यह नहीं होगा। चौड़ाई = "ऑटो" सामग्री के आकार का होगा, जबकि "*" उपलब्ध स्थान पर _expand_ होगा। मुझे बाद वाले की जरूरत है। बीटीडब्लू, चौड़ाई = "ऑटो" डिफ़ॉल्ट है अगर चौड़ाई निर्दिष्ट नहीं है - AFAIK। तो चौड़ाई = "ऑटो" मेरे उदाहरण में पहली सूची बॉक्स Item के समान होगा। – user2261015