HelloI am getting another business-critical and rather annoying error from the Infragistics XamDataGrid.I use NetAdvantage for Win Client 2010 Volume 2.
The error occurs a little randomly, but I think I have isolated two scenarios:
1)When the grid is within a TabControl and tab selection is changed
2)When the DataSource bound collection is cleared or modified.
The error occurrs, but within the XamDataGrid control, so I have no possibility to make a breakpoint or pause VS2008 so I can change the code. Because error does not reflect any file and line number in the code.
Here is my XAML code for the grid. - The "DataSource" is bound to an ObservableCollection<Shipment> - The "ActiveDataItem is bound to a single Shipment-class
<kwg:DataGrid DataSource="{Binding Items}" ActiveDataItem="{Binding ActiveItem, Mode=TwoWay}" Visibility="{Binding ContentVisibility}" GridLayout="{Binding ShipmentsGridLayout, Mode=TwoWay}" LayoutSavedCommand="{Binding GridLayoutSaveCommand}" RefreshGridCommand="{Binding RefreshGridCommand}" CommandParameter="shipment_overview" Theme="Office2k7Silver" Background="GhostWhite" IsSynchronizedWithCurrentItem="True" AutoFit="False" AllowDrop="False"> <kwg:DataGrid.FieldLayoutSettings> <kwg:FieldLayoutSettings HeaderPrefixAreaDisplayMode="FieldChooserButton" AllowAddNew="False" AllowDelete="False" HighlightAlternateRecords="False" SelectionTypeRecord="Extended" SelectionTypeField="Extended" SelectionTypeCell="None" AutoGenerateFields="False" /> </kwg:DataGrid.FieldLayoutSettings> <kwg:DataGrid.FieldLayouts> <idp:FieldLayout Key="Shipment"> <idp:FieldLayout.FieldSettings> <kwg:FieldSettings AllowRecordFiltering="True" AllowGroupBy="True" AllowResize="True" AllowEdit="False" CellClickAction="SelectRecord"/> </idp:FieldLayout.FieldSettings> <idp:Field Name="CreatedDate" Converter="{StaticResource formatter}" ConverterParameter="\{0:yyyy-MM-dd hh:mm\}" Label="Created" Column="0" Visibility="Visible" Width="80"> <idp:Field.Settings> <idp:FieldSettings EditAsType="{x:Type sys:String}"/> </idp:Field.Settings> </idp:Field> <idp:Field Name="Assignmentid" Label="Assignmend Id" Column="1" Visibility="Visible" Width="150" /> <idp:Field Name="MovementReferenceNumber" Label="MRN" Column="2" Visibility="Visible" Width="80" /> <idp:Field Name="DeclarationType" Label="Declaration type" Column="3" Visibility="Visible" Width="80" /> <idp:Field Name="DeclarationStatus" Label="Status" Column="4" Visibility="Visible" Width="80"> <idp:Field.Settings> <idp:FieldSettings> <idp:FieldSettings.CellValuePresenterStyle> <Style TargetType="{x:Type idp:CellValuePresenter}"> <Style.Triggers> <DataTrigger Binding="{Binding Path=DataItem.DeclarationStatus}" Value="ERR"> <Setter Property="Foreground" Value="Red"/> </DataTrigger> </Style.Triggers> </Style> </idp:FieldSettings.CellValuePresenterStyle> </idp:FieldSettings> </idp:Field.Settings> </idp:Field> <idp:Field Name="TotalNumberOfItems" Label="Total # of items" Column="5" Visibility="Visible" Width="80"> <idp:Field.Settings> <idp:FieldSettings> <idp:FieldSettings.EditorStyle> <Style TargetType="{x:Type ide:XamCurrencyEditor}"> <Setter Property="Format" Value=".###"/> </Style> </idp:FieldSettings.EditorStyle> </idp:FieldSettings> </idp:Field.Settings> </idp:Field> <idp:Field Name="TotalNumberOfPackages" Label="Total # of packages" Column="6" Visibility="Visible" Width="80"> <idp:Field.Settings> <idp:FieldSettings> <idp:FieldSettings.EditorStyle> <Style TargetType="{x:Type ide:XamCurrencyEditor}"> <Setter Property="Format" Value=".###"/> </Style> </idp:FieldSettings.EditorStyle> </idp:FieldSettings> </idp:Field.Settings> </idp:Field> <idp:Field Name="TotalGrossWeight" Label="Total gross weight" Column="7" Visibility="Visible" Width="80"> <idp:Field.Settings> <idp:FieldSettings> <idp:FieldSettings.EditorStyle> <Style TargetType="{x:Type ide:XamCurrencyEditor}"> <Setter Property="Format" Value=".###"/> </Style> </idp:FieldSettings.EditorStyle> </idp:FieldSettings> </idp:Field.Settings> </idp:Field> <idp:Field Name="Declarant" Label="Declarant" Column="8" Visibility="Visible" Width="100" /> <idp:Field Name="PlaceOfLoading" Label="Place of load" Column="9" Visibility="Visible" Width="80" /> <idp:Field Name="PlaceOfUnloading" Label="Place of unload" Column="10" Visibility="Visible" Width="80" /> <idp:Field Name="Consignor" Label="Consignor" Column="11" Visibility="Visible" Width="100" /> <idp:Field Name="Consignee" Label="Consignee" Column="12" Visibility="Visible" Width="100" /> <idp:Field Name="NotifyParty" Label="Notify party" Column="13" Visibility="Visible" Width="100" /> <idp:Field Name="LodgingPerson" Label="Lodging person" Column="14" Visibility="Visible" Width="100" /> <idp:Field Name="Representative" Label="Representative" Column="15" Visibility="Visible" Width="100" /> <idp:Field Name="Carrier" Label="Carrier" Column="16" Visibility="Visible" Width="100" /> <idp:Field Name="CustomerId" Label="Customer Id" Column="17" Visibility="Visible" Width="150" /> <idp:Field Name="UserId" Label="User Id" Column="18" Visibility="Visible" Width="80" /> <idp:Field Name="LastChangedBy" Label="Last changed by" Column="19" Visibility="Visible" Width="80" /> <!--<idp:Field Name="AIVStatus" Label="AIV Status" Column="20" Visibility="Visible" Width="80" />--> </idp:FieldLayout> </kwg:DataGrid.FieldLayouts> <kwg:DataGrid.ContextMenu> <ContextMenu> <MenuItem Uid="mp_cmiOpen" Name="cmiOpen" Header="Open" Command="{Binding OpenICSCommand}" IsEnabled="{Binding OpenICSIsEnabled}" FontWeight="Bold" /> <MenuItem Uid="mp_cmiNew" Header="New" IsEnabled="{Binding NewIsEnabled}"> <MenuItem Uid="mp_cmiNewENS" Name="cmiNewENS" Header="Entry Summary Declaration [ENS]" Command="{Binding NewENSCommand}" IsEnabled="{Binding NewENSIsEnabled}" /> <MenuItem Uid="mp_cmiNewEXS" Name="cmiNewEXS" Header="Exit Summary Declaration [EXS]" Command="{Binding NewEXSCommand}" IsEnabled="{Binding NewEXSIsEnabled}" /> </MenuItem> <MenuItem Uid="mp_cmiMake" Header="Make" IsEnabled="{Binding MakeIsEnabled}"> <MenuItem Uid="mp_cmiMakeAMD" Name="cmiMakeAMD" Header="Amendment [AMD]" Command="{Binding MakeAMDCommand}" IsEnabled="{Binding MakeAMDIsEnabled}" /> <MenuItem Uid="mp_cmiMakeARN" Name="cmiMakeARN" Header="Arrival Notification [ARN]" Command="{Binding MakeARNCommand}" IsEnabled="{Binding MakeARNIsEnabled}" /> <MenuItem Uid="mp_cmiMakeDIV" Name="cmiMakeDIV" Header="Diversion Request [DIV]" Command="{Binding MakeDIVCommand}" IsEnabled="{Binding MakeDIVIsEnabled}" /> </MenuItem> <MenuItem Uid="mp_cmiDelete" Name="cmiDelete" Header="Delete" Command="{Binding DeleteICSCommand}" IsEnabled="{Binding DeleteICSIsEnabled}" /> <Separator/> </ContextMenu> </kwg:DataGrid.ContextMenu> </kwg:DataGrid>
note:
I was a bit fast here; the default recordselector is included as a resource dictionary in the top of the office theme.
Yet still the default theme doesn't crash, while the office2k7silver theme does.
We are using the 10.3 version as stated earlier.
Best Regards,
Stian
Hello.
We've done some further digging into this issue, as we managed to reproduce the error again.
At our grids we're using the office2k7silver theme. Looking through the style for the recordselector in defualt theme there is a path named selectorArrow_Active is defined. This path is not present in the office2k7 theme.
Reverting to the default theme eliminates the crash. It's pure speculation from this point, but are you handling this path somewhere in your code after pulling it out from the template? Without a nullcheck for instance?
Best regards,
Stian Farstad
I hide RecordSelector with RecordSelectorLocation="None" and I rescued myself to investigate problem:) Thank you very much.
Hi,
Thank you for help. Specific version number is : 10.2.20102.2174
Hi emreo,
Please let me know the specific version of the Infragistics assemblies (*.dll files) that you are using in your project so I can try and replicate it.
Sincerely,
Petar Monov
Developer Support Engineer
Infragistics Bulgaria
www.infragistics.com/support