मुझे लगता है कि मेरे पास एक बहुत ही सरल लक्ष्य है लेकिन ऐसा नहीं लगता है।स्थिर शीर्षलेख के साथ आइटम नियंत्रण
मैं जो हासिल करना चाहता हूं वह एक हैडर के साथ एक आइटम नियंत्रण (क्योंकि मैं सूची की चयन कार्यक्षमता नहीं चाहता) है। अधिमानतः एक स्थिर शीर्षलेख।
वर्तमान में मैं शीर्षलेख के लिए एक ग्रिड का उपयोग कर रहा हूं और फिर उस ग्रिड को आइटम्स कंट्रोल के आइटम टेम्पलेट (डेटा टेम्पल) में कॉपी कर रहा हूं और फिर उन्हें एक ग्रिड में दूसरे से ऊपर रख रहा हूं। यह थोड़े काम करता है लेकिन यह हमेशा अच्छी तरह से लाइन नहीं करता है।
मुझे तब हेड्रेड इटम्स कंट्रोल मिला जो मैंने सोचा था कि एक शानदार विचार था लेकिन इसे काम करने में नहीं मिला, यह सिर्फ हेडर नहीं दिखाता है। मैंने निम्नलिखित की कोशिश की है;
- बस ItemsControl.Header टैग
- HeaderTemplate (DataTemplate) के भीतर ग्रिड रखने के भीतर स्थिर पाठ के साथ TextBlocks के साथ एक ग्रिड रखने Xaml
- की "हैडर" में पाठ दर्ज करने के लिए और यह बाध्यकारी एक साधारण वस्तु
मैं इसे उत्पादन ऐप में ले जाने से पहले एक छोटी परियोजना में मिश्रण में कर रहा हूं और मैं बस एक साधारण नमूना डेटा स्रोत का उपयोग कर रहा हूं जिसे मैंने बनाया है।
मुझे नाव पूरी तरह से गायब हो सकता है लेकिन किसी भी मदद की सराहना की जाएगी।
मेरे वर्तमान कोड इस प्रकार है, पहले मेरी HeaderedItemsControl
<HeaderedItemsControl Header="HeaderedItemsControl"
ItemsSource="{Binding Collection, Mode=Default}"
ItemTemplate="{DynamicResource ItemsControlDataTemplate}"
HeaderTemplate="{DynamicResource ItemsControlHeaderDataTemplate}"/>
तो मैं एक ItemTemple जो
<DataTemplate x:Key="ItemsControlDataTemplate">
<Grid d:DesignWidth="268">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.754*"/>
<ColumnDefinition Width="0.246*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Property1, Mode=Default}" TextWrapping="Wrap" d:LayoutOverrides="Height" HorizontalAlignment="Stretch" Margin="0" />
<TextBlock Text="{Binding Property2, Mode=Default}" TextWrapping="Wrap" d:LayoutOverrides="Height" Grid.Column="1" HorizontalAlignment="Left" Margin="0" />
</Grid>
</DataTemplate>
की उम्मीद है और फिर शीर्ष लेख जो बेखटके अपने काम का विरोध कर रहा है के रूप में काम करता है मिल गया है है नैतिक, मैंने इसे बाध्यकारी और टेक्स्टब्लॉक में केवल सादा पाठ के साथ करने की कोशिश की है। आगे की संपत्ति
<DataTemplate x:Key="ItemsControlHeaderDataTemplate">
<Grid d:DesignWidth="268">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.754*"/>
<ColumnDefinition Width="0.246*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Header.Header1, Mode=Default, Source={StaticResource SampleDataSource6}}" TextWrapping="Wrap" HorizontalAlignment="Stretch" Margin="0"/>
<TextBlock Text="{Binding Header.Header2, Mode=Default, Source={StaticResource SampleDataSource6}}" TextWrapping="Wrap" d:LayoutOverrides="Height" Grid.Column="1" HorizontalAlignment="Left" Margin="0"/>
</Grid>
</DataTemplate>
धन्यवाद सर, आपका जवाब वास्तव में मदद करता है। अंत में मैंने HeaderedItemsControl के लिए एक शैली बनाई और ContentSourceer को जोड़ा क्योंकि आपने ContentSource = हेडर विशेषता के साथ सुझाव दिया था। इस तरह से मैं ऐप के भीतर सभी आइटम्स कंट्रोल पर इसका उपयोग कर सकता हूं और केवल HeaderedItemsControl.Header टैग में टेक्स्टब्लॉक के साथ ग्रिड जोड़ सकता हूं। ग्रिड आकार साझाकरण पर आपके सुझाव को wrt, मैं इसका परीक्षण करूंगा लेकिन यह सुनिश्चित नहीं करेगा कि यह एक ग्रिड के रूप में काम करेगा, डेटा टेम्पलेट में है और दूसरा आइटम नियंत्रण के शीर्षलेख में होगा लेकिन मैं इसका परीक्षण करूंगा और प्रतिक्रिया दूंगा –