private void SetColumnsVisibility(ClaimAmountHistoryModel model, XIAPSearchResultGrid claimAmountHistoryXIAPGrid)
        {
            Visibility visibility = Visibility.Visible;

            if (model.ClaimAmountSearchData.Payments == false)
            {
                visibility = Visibility.Collapsed;
            }

            claimAmountHistoryXIAPGrid.Columns["PayeeName"].Visibility = visibility;
            claimAmountHistoryXIAPGrid.Columns["PaymentStatusDescription"].Visibility = visibility;
            claimAmountHistoryXIAPGrid.Columns["PaymentCustomReference"].Visibility = visibility;
        }
        ////Set the visibilty of the grid column based on the showcolumn model property.
        private void BindColumnVisibility(XIAPSearchResultGrid grid)
        {
            if (grid != null)
            {
                foreach (var gridColumn in grid.Columns)
                {
                    if ((gridColumn.Header.ToString() == GeniusX.AXA.FrontendModules.Claims.Resources.StringResources.Resource_Driver ||
                       gridColumn.Header.ToString() == GeniusX.AXA.FrontendModules.Claims.Resources.StringResources.Resource_ClaimClientRegistrationNumber ||
                        gridColumn.Header.ToString() == GeniusX.AXA.FrontendModules.Claims.Resources.StringResources.Resource_ClaimTPRegistrationNumber) &&
                       this.ShowColumn == false)
                    {
                        gridColumn.Visibility = Visibility.Collapsed;
                    }

                    if (((gridColumn.Header as TextBlock).Text == GeniusX.AXA.FrontendModules.Claims.Resources.StringResources.Resource_Driver ||
                        (gridColumn.Header as TextBlock).Text == GeniusX.AXA.FrontendModules.Claims.Resources.StringResources.Resource_ClaimClientRegistrationNumber ||
                        (gridColumn.Header as TextBlock).Text == GeniusX.AXA.FrontendModules.Claims.Resources.StringResources.Resource_ClaimTPRegistrationNumber) &&
                        this.ProductCode == AXAClaimConstants.LIABILITY_CLAIM_PRODUCT)
                    {
                        gridColumn.Visibility = Visibility.Collapsed;
                    }
                }
            }
        }
        ////Binds the search grid with the model.
        public void BindSearchGrid(XIAPSearchResultGrid grid, SearchResultModel searchResultModel)
        {
            XIAPSearchResultGrid searchGrid = grid;
            grid.DataContext = searchResultModel;
            searchGrid.DataContext = searchResultModel;             
            searchResultModel.CloseButtonVisibility = Visibility.Visible;
            searchResultModel.CloseCommand = this.CloseCommand;
            searchResultModel.IsLoadingData = true;

            searchGrid.NeedData += (sender, args) =>
            {
                if (this.NeedDataCommand.CanExecute(args))
                {
                    args.GridID = searchResultModel.ProviderName;
                    this.NeedDataCommand.Execute(args);
                }
            };
           
            searchGrid.SetBinding(XIAPReadOnlyGrid.SelectedItemProperty,new Binding("SelectedRow")
            {
                Mode = BindingMode.TwoWay,
                Source = searchResultModel
            });

            searchGrid.AllowPaging = true;
            searchGrid.AutoAdjustPageSize = true;
            searchGrid.FooterVisibility = Visibility.Visible;
            searchGrid.SetBinding(XIAPReadOnlyGrid.ShowFooterInfoProperty, new Binding("IsInitialSearch")
            {   
                Converter = new InvertBooleanConverter(),
                Source = this               
            });

            searchGrid.ShowRefreshInfo = true;
            searchGrid.SetBinding(XIAPReadOnlyGrid.RefreshInfoTextProperty, new Binding("RefreshInfoText")
            {
                Source = searchResultModel
            });
            searchGrid.RefreshCommand = this.Refresh;
            this.BindColumnVisibility(searchGrid);        
        }