Hi,
I got one problem of RadGridView with Hierarchy gridview structure.
Configuration:
WPF app for .NET Framework 4
Windows 7 (x64) Professional
Telerik Version: RadControls for WPF Q2 2011 SP1(2011.2.0920)
my xaml code for gridview.
If i use a debugger it shows that i have exception: NullReferenceException that's throwed from GridViewRow.OnIsExpandedChanged.
The error message.
Sysem.NullReferenceException :
{"Object reference not set to an instance of an object"}
Data:
System.Collections.ListDictionaryInternal
StackTrace:
at DataSwiftWPF.Views.Invoice.InvoiceListWindow.System.Windows.Markup.IStyleConnector.Connect(Int32 connectionId, Object target) in f:\Stephen Chow\Project\DataSwiftV3\DataSwiftWPF\Views\Invoice\InvoiceListWindow.xaml:line 110
at System.Windows.FrameworkTemplate.LoadTemplateXaml(XamlReader templateReader, XamlObjectWriter currentWriter)
at System.Windows.FrameworkTemplate.LoadTemplateXaml(XamlObjectWriter objectWriter)
at System.Windows.FrameworkTemplate.LoadOptimizedTemplateContent(DependencyObject container, IComponentConnector componentConnector, IStyleConnector styleConnector, List`1 affectedChildren, UncommonField`1 templatedNonFeChildrenField)
at System.Windows.FrameworkTemplate.LoadContent(DependencyObject container, List`1 affectedChildren)
at System.Windows.FrameworkTemplate.LoadContent()
at Telerik.Windows.Controls.GridView.GridViewRow.PopulateHierarchyContent() in c:\TB\102\WPF_Scrum\Release_WPF\Sources\Development\Controls\GridView\GridView\GridView\Rows\GridViewRow.cs:line 304
at Telerik.Windows.Controls.GridView.GridViewRow.OnIsExpandedChanged(Boolean oldValue, Boolean newValue) in c:\TB\102\WPF_Scrum\Release_WPF\Sources\Development\Controls\GridView\GridView\GridView\Rows\GridViewRow.cs:line 230
at Telerik.Windows.Controls.GridView.GridViewRow.OnIsExpandedChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e) in c:\TB\102\WPF_Scrum\Release_WPF\Sources\Development\Controls\GridView\GridView\GridView\Rows\GridViewRow.cs:line 205
at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
at MS.Internal.Data.PropertyPathWorker.SetValue(Object item, Object value)
at MS.Internal.Data.ClrBindingWorker.UpdateValue(Object value)
at System.Windows.Data.BindingExpression.UpdateSource(Object value)
TargetSite:
{Void System.Windows.Markup.IStyleConnector.Connect(Int32, System.Object)}
I found a thread that is talking a similar scenario. And you reply that the problem could be fixed by getting the latest version of build.
But it seems that it does not work in my scenario.
http://www.telerik.com/community/forums/wpf/gridview/nullreferenceexception-in-gridviewrow-onisexpandedchanged.aspx
Any suggestion for my scenario?
Regards,
Stephen Chow
                                I got one problem of RadGridView with Hierarchy gridview structure.
Configuration:
WPF app for .NET Framework 4
Windows 7 (x64) Professional
Telerik Version: RadControls for WPF Q2 2011 SP1(2011.2.0920)
I show the data to user using the following hierarchy:
RadGridView (Level 1)
+---- RadGridView (Level 2)
+-------------- RadGridView (Level 3)
It works fine in normal data databinding. Three level of gridvews can be shown.
i.e.
<telerik:GridViewDataColumn    DataMemberBinding="{Binding Allocation_Amount}"
Header="Amount" TextAlignment="Right" Width="Auto" HeaderTextAlignment="Right">  </telerik:GridViewDataColumn>When i add a converter in binding in Level 3 grid, during runtime it shows only the Level 1 grid (the topmost one) with "+" that's not expandable. If i add a converter in binding in Level 1 and Level 2 grid, it also works fine. Three levels expandable grid could be shown.
i.e. 
<telerik:GridViewDataColumn     DataMemberBinding="{Binding Allocation_Amount, Converter={StaticResource stringFormat},   ConverterCulture={x:Static glob:CultureInfo.CurrentCulture}, ConverterParameter={}{0:C}}"  Header="Amount" TextAlignment="Right" Width="Auto" HeaderTextAlignment="Right">  </telerik:GridViewDataColumn>my xaml code for gridview.
<telerik:RadGridView ShowGroupPanel="False"  x:Name="rgvInvoiceList" ItemsSource="{Binding InvoiceList, Mode=OneWay}" IsReadOnly="True">                             <telerik:RadGridView.ChildTableDefinitions>                                      <telerik:GridViewTableDefinition/>                                  </telerik:RadGridView.ChildTableDefinitions>                              <telerik:RadGridView.Columns>                  <telerik:GridViewDataColumn Header="Invoice No" DataMemberBinding="{Binding Invoice_No}">                      <telerik:GridViewDataColumn.CellTemplate>                          <DataTemplate>                              <TextBlock>                                  <Hyperlink Click="InvoiceNo_Click">                                      <TextBlock Text="{Binding Invoice_No}" ></TextBlock>                                  </Hyperlink>                                                                         </TextBlock>                          </DataTemplate>                      </telerik:GridViewDataColumn.CellTemplate>                  </telerik:GridViewDataColumn>                  <telerik:GridViewDataColumn DataMemberBinding="{Binding Invoice_Date, Converter={StaticResource stringFormat},                                               ConverterCulture={x:Static glob:CultureInfo.CurrentCulture}, ConverterParameter={}{0:d}}"                                              Header="Date" MinWidth="60" ></telerik:GridViewDataColumn>                  <telerik:GridViewDataColumn  Header="Bill To" Width="*" DataMemberBinding="{Binding Bill_To_Name}">                      <telerik:GridViewDataColumn.CellTemplate>                          <DataTemplate>                              <TextBlock>                                  <Hyperlink Click="BillToName_Click">                                      <TextBlock Text="{Binding Bill_To_Name}" ></TextBlock>                                  </Hyperlink>                              </TextBlock>                          </DataTemplate>                      </telerik:GridViewDataColumn.CellTemplate>                  </telerik:GridViewDataColumn>                  <telerik:GridViewDataColumn Header="Pay To" DataMemberBinding="{Binding Pay_To_Type}"/>                  <telerik:GridViewDataColumn  Header="Status" DataMemberBinding="{Binding Invoice_Status_Text}" />                  <telerik:GridViewDataColumn DataMemberBinding="{Binding Invoice_Total, Converter={StaticResource stringFormat},                   ConverterCulture={x:Static glob:CultureInfo.CurrentCulture}, ConverterParameter={}{0:C}}"                                          Header="Amount" TextAlignment="Right" Width="Auto" HeaderTextAlignment="Right">                  </telerik:GridViewDataColumn>              </telerik:RadGridView.Columns>                                             <telerik:RadGridView.HierarchyChildTemplate>                  <DataTemplate>                      <!-- Invoice Detail Level -->                     <telerik:RadGridView ShowColumnHeaders="False"  ShowGroupPanel="False"  ItemsSource="{Binding Invoice_Detail,  Mode=OneWay}" AutoGenerateColumns="False"                                          IsReadOnly="True" >                          <telerik:RadGridView.ChildTableDefinitions>                              <telerik:GridViewTableDefinition/>                          </telerik:RadGridView.ChildTableDefinitions>                          <telerik:RadGridView.Columns>                              <telerik:GridViewDataColumn DataMemberBinding="{Binding Cost_Centre_Name_Display}"                  Header="Cost Centre" Width="Auto"></telerik:GridViewDataColumn>                              <telerik:GridViewDataColumn DataMemberBinding="{Binding Account_Code_Name_Internal_Display}"                  Header="Account" Width="Auto"></telerik:GridViewDataColumn>                              <telerik:GridViewDataColumn DataMemberBinding="{Binding Period_From, Converter={StaticResource stringFormat},                   ConverterCulture={x:Static glob:CultureInfo.CurrentCulture}, ConverterParameter={}{0:d}}"                   Header="Period From" TextAlignment="Right" HeaderTextAlignment="Right" MinWidth="60">                              </telerik:GridViewDataColumn>                              <telerik:GridViewDataColumn DataMemberBinding="{Binding Period_To, Converter={StaticResource stringFormat},                   ConverterCulture={x:Static glob:CultureInfo.CurrentCulture}, ConverterParameter={}{0:d}}"                   Header="Period To" TextAlignment="Right" HeaderTextAlignment="Right" MinWidth="60"></telerik:GridViewDataColumn>                              <telerik:GridViewDataColumn DataMemberBinding="{Binding Description}" Header="Description" Style="{StaticResource GridViewDataColumnStyle_Description}">                              </telerik:GridViewDataColumn>                              <telerik:GridViewDataColumn DataMemberBinding="{Binding Invoice_Amount, Converter={StaticResource stringFormat},                   ConverterCulture={x:Static glob:CultureInfo.CurrentCulture}, ConverterParameter={}{0:C}}"                                          Header="Amount" TextAlignment="Right" Width="Auto" HeaderTextAlignment="Right">                              </telerik:GridViewDataColumn>                          </telerik:RadGridView.Columns>                          <!-- Invoice Allocation Level -->                         <telerik:RadGridView.HierarchyChildTemplate>                              <DataTemplate>                                  <telerik:RadGridView ShowColumnHeaders="False" ShowGroupPanel="False"  ItemsSource="{Binding Invoice_Allocation, Mode=OneWay}" AutoGenerateColumns="False"                                          IsReadOnly="True">                                      <telerik:RadGridView.Columns>                                              <telerik:GridViewDataColumn Header="Receipt No/Credit Note No"   TextAlignment="Right" Width="Auto" HeaderTextAlignment="Right"                                                                      DataMemberBinding="{Binding Receipt_Credit_Note_No}" >                                              <telerik:GridViewDataColumn.CellTemplate>                                                  <DataTemplate>                                                      <TextBlock>                                                          <Hyperlink Click="ReceiptNoCreditNo_Click">                                                              <TextBlock Text="{Binding Receipt_Credit_Note_No}" ></TextBlock>                                                          </Hyperlink>                                                      </TextBlock>                                                  </DataTemplate>                                              </telerik:GridViewDataColumn.CellTemplate>                                          </telerik:GridViewDataColumn>                                          <!--<telerik:GridViewDataColumn DataMemberBinding="{Binding Cutoff_Date, Converter={StaticResource stringFormat},                   ConverterCulture={x:Static glob:CultureInfo.CurrentCulture}, ConverterParameter={}{0:d}}"                   Header="Cutoff Date" TextAlignment="Right" HeaderTextAlignment="Right" MinWidth="60">                                          </telerik:GridViewDataColumn>-->                                          <telerik:GridViewDataColumn DataMemberBinding="{Binding Cutoff_Date}"                  Header="Cutoff Date" TextAlignment="Right" HeaderTextAlignment="Right" MinWidth="60">                                          </telerik:GridViewDataColumn>                                                                                               <!--<telerik:GridViewDataColumn     DataMemberBinding="{Binding Allocation_Amount, Converter={StaticResource stringFormat},                   ConverterCulture={x:Static glob:CultureInfo.CurrentCulture}, ConverterParameter={}{0:C}}"                                          Header="Amount" TextAlignment="Right" Width="Auto" HeaderTextAlignment="Right">                                          </telerik:GridViewDataColumn>-->                                          <telerik:GridViewDataColumn    DataMemberBinding="{Binding Allocation_Amount}"                                         Header="Amount" TextAlignment="Right" Width="Auto" HeaderTextAlignment="Right">                                          </telerik:GridViewDataColumn>                                                                                                                            </telerik:RadGridView.Columns>                                  </telerik:RadGridView>                              </DataTemplate>                          </telerik:RadGridView.HierarchyChildTemplate>                      </telerik:RadGridView>                  </DataTemplate>              </telerik:RadGridView.HierarchyChildTemplate>                                        </telerik:RadGridView>If i use a debugger it shows that i have exception: NullReferenceException that's throwed from GridViewRow.OnIsExpandedChanged.
The error message.
Sysem.NullReferenceException :
{"Object reference not set to an instance of an object"}
Data:
System.Collections.ListDictionaryInternal
StackTrace:
at DataSwiftWPF.Views.Invoice.InvoiceListWindow.System.Windows.Markup.IStyleConnector.Connect(Int32 connectionId, Object target) in f:\Stephen Chow\Project\DataSwiftV3\DataSwiftWPF\Views\Invoice\InvoiceListWindow.xaml:line 110
at System.Windows.FrameworkTemplate.LoadTemplateXaml(XamlReader templateReader, XamlObjectWriter currentWriter)
at System.Windows.FrameworkTemplate.LoadTemplateXaml(XamlObjectWriter objectWriter)
at System.Windows.FrameworkTemplate.LoadOptimizedTemplateContent(DependencyObject container, IComponentConnector componentConnector, IStyleConnector styleConnector, List`1 affectedChildren, UncommonField`1 templatedNonFeChildrenField)
at System.Windows.FrameworkTemplate.LoadContent(DependencyObject container, List`1 affectedChildren)
at System.Windows.FrameworkTemplate.LoadContent()
at Telerik.Windows.Controls.GridView.GridViewRow.PopulateHierarchyContent() in c:\TB\102\WPF_Scrum\Release_WPF\Sources\Development\Controls\GridView\GridView\GridView\Rows\GridViewRow.cs:line 304
at Telerik.Windows.Controls.GridView.GridViewRow.OnIsExpandedChanged(Boolean oldValue, Boolean newValue) in c:\TB\102\WPF_Scrum\Release_WPF\Sources\Development\Controls\GridView\GridView\GridView\Rows\GridViewRow.cs:line 230
at Telerik.Windows.Controls.GridView.GridViewRow.OnIsExpandedChanged(DependencyObject dependencyObject, DependencyPropertyChangedEventArgs e) in c:\TB\102\WPF_Scrum\Release_WPF\Sources\Development\Controls\GridView\GridView\GridView\Rows\GridViewRow.cs:line 205
at System.Windows.DependencyObject.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.FrameworkElement.OnPropertyChanged(DependencyPropertyChangedEventArgs e)
at System.Windows.DependencyObject.NotifyPropertyChange(DependencyPropertyChangedEventArgs args)
at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex, DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry, EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType)
at System.Windows.DependencyObject.SetValueCommon(DependencyProperty dp, Object value, PropertyMetadata metadata, Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, OperationType operationType, Boolean isInternal)
at System.Windows.DependencyObject.SetValue(DependencyProperty dp, Object value)
at MS.Internal.Data.PropertyPathWorker.SetValue(Object item, Object value)
at MS.Internal.Data.ClrBindingWorker.UpdateValue(Object value)
at System.Windows.Data.BindingExpression.UpdateSource(Object value)
TargetSite:
{Void System.Windows.Markup.IStyleConnector.Connect(Int32, System.Object)}
I found a thread that is talking a similar scenario. And you reply that the problem could be fixed by getting the latest version of build.
But it seems that it does not work in my scenario.
http://www.telerik.com/community/forums/wpf/gridview/nullreferenceexception-in-gridviewrow-onisexpandedchanged.aspx
Any suggestion for my scenario?
Regards,
Stephen Chow