2010-11-24 14 views
5

मैं एक CellTemplateSelector सशर्त एक डेटा ग्रिड कॉलम में सही का चिह्न प्रदर्शित करने के लिए उपयोग कर रहा हूँ।कोई पैरामीटर कस्टम DataTemplateSelector की SelectTemplate() करने के लिए पारित कर रहे हैं। क्यूं कर?

मेरी DataTemplateSelector कक्षा के SelectTemplate(object item, DependencyObject container) विधि को कॉल किया गया है लेकिन पैरामीटर आइटम अपेक्षाकृत DataRowView -object के बजाय शून्य है।

यहाँ XAML-संहिता है। डेटा ग्रिड की संपत्ति ItemsSource में आइटम एक DataTable है, जो अन्य स्तंभों के लिए ठीक काम करता है है। (मैं विजुअल स्टूडियो एक्सप्रेस 2010 के साथ काम)

... 
<Window.Resources>   
     <DataTemplate x:Key="CheckedTemplate"> 
      <Path Width="16" Height="16" Margin="6,0,0,0" 
      x:Name="CheckMark" SnapsToDevicePixels="False" 
      Stroke="Green" Fill="Green" StrokeThickness="1" 
      Data="M 12.4227,0.00012207C 12.4867,0.126587 12.5333,0.274536 
      12.6787,0.321411C 9.49199,3.24792 6.704,6.57336 
      4.69865,10.6827C 4.04399,11.08 3.47066,11.5573 2.83199, 
      11.9706C 2.09467,10.2198 1.692,8.13196 3.8147e-006, 
      7.33606C 0.500004,6.79871 1.31733,6.05994 1.93067,6.2428C 
      2.85999,6.51868 3.14,7.9054 3.60399,8.81604C 5.80133, 
      5.5387 8.53734,2.19202 12.4227,0.00012207 Z " /> 
     </DataTemplate> 
     <DataTemplate x:Key="UncheckedTemplate"> 
     </DataTemplate> 

     <local:CheckmarkTemplateSelector x:Key="CheckmarkTemplateSelector" CheckedTemplate="{StaticResource CheckedTemplate}" UncheckedTemplate="{StaticResource UncheckedTemplate}" /> 
    </Window.Resources> 
... 
<DataGrid ItemsSource="{Binding Items, Mode=OneWay}" AutoGenerateColumns="False">    
    <DataGrid.Columns> 
     <DataGridTextColumn Header="No" Binding="{Binding no}" IsReadOnly="True" /> 
     <DataGridTextColumn Header="Name" Binding="{Binding name}" IsReadOnly="True" /> 
     <DataGridTemplateColumn Header="Selected" CellTemplateSelector="{StaticResource CheckmarkTemplateSelector}" /> 
    </DataGrid.Columns> 
</DataGrid> 
... 

किसी भी मदद की सराहना की है। अग्रिम में धन्यवाद।

उत्तर

4

आप यकीन है कि यह हमेशा अशक्त पारित कर दिया है, या सिर्फ पहली बार कर रहे हैं? जब तार्किक पेड़, तो item साथ डेटा आइटम प्रति एक बार कहा जाता है की स्थापना बाध्य वस्तु पारित कर दिया CellTemplateSelector एक अशक्त item के साथ एक बार कहा जाता है। आप बस पहली नल पर असफल हो सकते हैं।

यह प्रश्न भी देखें: Why is the SelectTemplate Method run 2 times in debug mode?

+0

आपका अधिकार सही है। यह केवल पहली बार शून्य है। उसे नहीं पता था और शून्य मूल्य पर फंस गया था। लेकिन एक और त्रुटि हुई, मैंने अभी तय कर लिया है। अब यह काम कर रहा है। बहुत बहुत धन्यवाद, यह वास्तव में मेरी मदद की! – sannoble

संबंधित मुद्दे