सुनिश्चित नहीं हैं कि इस मदद करता है, लेकिन एक दृष्टिकोण मैं उनके हेडर से स्तंभ को अलग करने और उन्हें अलग से पेश करने के लिए अतीत में इस्तेमाल किया है, तो।
स्तंभ परिभाषाओं संसाधनों में परिभाषित कर रहे हैं:
<UserControl.Resources>
<ResourceDictionary>
<GridViewColumnCollection x:Key="siColumnCollection">
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
...
</DataTemplate>
</GridViewColumn.CellTemplate>
<GridViewColumnHeader Content="Fish"/>
</GridViewColumn>
...
फिर हेडर और सूचीदृश्य अलग से प्रस्तुत कर रहे हैं, दोनों एक ही संसाधन संदर्भित:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<GridViewHeaderRowPresenter Columns="{StaticResource siColumnCollection}"/>
<ListView Grid.Row="1" ItemsSource="{Binding ViewModelList}">
<ListView.Resources>
<DataTemplate x:Key="siNormalRowTemplate">
<GridViewRowPresenter Columns="{StaticResource siColumnCollection}"/>
</DataTemplate>
</ListView.Resources>
</ListView>
</Grid>
(मैं इस XAML वादा नहीं कर सकता बिल्कुल लिखा है, लेकिन यह आपको विचार देता है)।
इस व्यवस्था का लाभ यह है कि आप हेडर और सूची के मुख्य निकाय को अलग से इलाज करने के लिए स्वतंत्र हैं। तो यदि आप GridViewHeaderRowPresenter के तुरंत बाद कुछ filler में रखना चाहते हैं, तो आप ऐसा करने के लिए स्वतंत्र हैं।
संपादित करें: यदि आपके पास ग्रिड व्यू है तो यह समाधान काम करता है, लेकिन दुर्भाग्य से डेटाग्रिड के लिए काम नहीं करता है। मैं डेटाग्रिड में हेडर और पंक्तियों को विभाजित करने के बराबर तरीका नहीं देख सकता, इसलिए यह उत्तर केवल तभी काम करेगा यदि आप ग्रिड व्यू के लिए डेटाग्रिड को स्वैप करने के लिए तैयार हैं। माफ़ कीजिये!
स्रोत
2012-02-23 12:01:33
यह दो के बेहतर विकल्प था, और मैं यह देखने के लिए की तरह मैं यह करना चाहता था बनाने के लिए वहाँ में एक ढाल पृष्ठभूमि डाल सकता है । मैंने सोचा कि मैंने कोशिश की है, डेटाग्रिड पर पृष्ठभूमि बदल रहा है, लेकिन पता चला है कि मैं अपने बदलावों को प्रभावी होने से रोकने के आखिरी मिनट में ओवरराइड करता हूं। :) –
ग्रेट। बस अगर आप सोच रहे हैं, तो आप एक ब्रश को दो ब्रश के साथ बना सकते हैं और दोनों के बीच दो जगहों को एक ही स्थान पर रखकर कोई ढाल नहीं कर सकते हैं। जैसा कि यहां वर्णित है: http://stackoverflow.com/questions/6546837/wpf-background-two-tone –