Beispiel #1
0
        protected void HandleGotFocus(object sender, EventArgs e)
        {
            TabItem ti  = sender as TabItem;
            string  hdr = ti.Header.ToString();

            ViewModel.SelectedTab = hdr;

            // Need to figure this out
            int accountnum = -1;

            if (hdr != "Accounts")
            {
                accountnum = GetAcctNum(hdr);
            }
            if (accountnum != -1)
            {
                AccountResultsViewModel ar = ViewModel.AccountResultsList[accountnum];
                lbErrors[accountnum].Items.Clear();
                for (int i = 0; i < ar.AccountProblemsList.Count; i++)
                {
                    ProblemInfo problemInfo = ar.AccountProblemsList[i];

                    if (problemInfo != null)
                    {
                        ListBoxItem item = new ListBoxItem();   // hack for now -- will do it right with binding later

                        item.Content = problemInfo.FormattedMsg;
                        lbErrors[accountnum].Items.Add(item);
                    }
                }
            }
        }
Beispiel #2
0
        protected void HandleDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (iTabCount == 16)
            {
                MessageBox.Show(string.Format("Only 16 tabs may be open at a time",
                                              MessageBoxButton.OK, MessageBoxImage.Error));
                return;
            }

            ListViewItem     lvi      = sender as ListViewItem;
            var              content  = lvi.Content as AccountResultsViewModel;
            TabControl       tabCtrl  = FindParent(lvi, typeof(TabControl)) as TabControl;
            CloseableTabItem userItem = new CloseableTabItem();

            userItem.Header = content.AccountName;

            // get accountnum so we can keep the listboxes and listviews straight
            int accountnum             = GetAcctNum((string)userItem.Header);
            AccountResultsViewModel ar = ViewModel.AccountResultsList[accountnum];

            try
            {
                if (urListView[accountnum] != null)
                {
                    for (int i = 0; i < tabCtrl.Items.Count; i++)
                    {
                        TabItem item = (TabItem)tabCtrl.Items[i];

                        if (item.Header.ToString() == content.AccountName)
                        {
                            tabCtrl.SelectedIndex = i;
                            break;
                        }
                    }
                    return;
                }
                iTabCount++;

                Grid urGrid = new Grid();

                // set up the grid's rows
                RowDefinition rowDef1 = new RowDefinition();
                RowDefinition rowDef2 = new RowDefinition();
                RowDefinition rowDef3 = new RowDefinition();
                RowDefinition rowDef4 = new RowDefinition();

                rowDef1.MaxHeight = 145;
                rowDef2.MaxHeight = 145;
                rowDef3.Height    = GridLength.Auto;
                rowDef4.Height    = GridLength.Auto;
                urGrid.Height     = 330;            // so we'll get  Vertical scrollviewer
                urGrid.RowDefinitions.Add(rowDef1);
                urGrid.RowDefinitions.Add(rowDef2);
                urGrid.RowDefinitions.Add(rowDef3);
                urGrid.RowDefinitions.Add(rowDef4);
                //

                // Set up the ListView
                urListView[accountnum]          = new ListView();
                urListView[accountnum].FontSize = 11;
                urListView[accountnum].SetValue(Grid.RowProperty, 0);
                urListView[accountnum].Margin = new Thickness(5);
                urListView[accountnum].Name   = "lstUserResults";

                GridView       urGridView = new GridView();
                GridViewColumn gvc1       = new GridViewColumn();

                // set up columns widths so we won't get a horizontal scrollbar
                GridViewColumnHeader gvc1H = new GridViewColumnHeader();

                gvc1H.FontSize = 11;
                gvc1H.Width    = 195;
                gvc1H.Content  = " Folder";
                gvc1H.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
                gvc1.DisplayMemberBinding        = new Binding("FolderName");
                gvc1.Header = gvc1H;
                urGridView.Columns.Add(gvc1);

                GridViewColumn       gvc2  = new GridViewColumn();
                GridViewColumnHeader gvc2H = new GridViewColumnHeader();

                gvc2H.FontSize = 11;
                gvc2H.Width    = 130;
                gvc2H.Content  = " Type";
                gvc2H.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
                gvc2.DisplayMemberBinding        = new Binding("TypeName");
                gvc2.Header = gvc2H;
                urGridView.Columns.Add(gvc2);

                GridViewColumn       gvc3  = new GridViewColumn();
                GridViewColumnHeader gvc3H = new GridViewColumnHeader();

                gvc3H.FontSize = 11;
                gvc3H.Width    = 120;
                gvc3H.Content  = " Progress";
                gvc3H.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
                gvc3.DisplayMemberBinding        = new Binding("UserProgressMsg");
                gvc3.Header = gvc3H;
                urGridView.Columns.Add(gvc3);

                urListView[accountnum].View = urGridView;

                urGrid.Children.Add(urListView[accountnum]);
                //

                // now create Listbox for errors
                lbErrors[accountnum]          = new ListBox();
                lbErrors[accountnum].FontSize = 11;
                lbErrors[accountnum].SetValue(Grid.RowProperty, 1);
                lbErrors[accountnum].Margin              = new Thickness(5, 5, 5, 5);
                lbErrors[accountnum].MinHeight           = 120;
                lbErrors[accountnum].MaxHeight           = 120;
                lbErrors[accountnum].MinWidth            = 450;
                lbErrors[accountnum].HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
                lbErrors[accountnum].VerticalAlignment   = System.Windows.VerticalAlignment.Top;
                urGrid.Children.Add(lbErrors[accountnum]);
                //

                // Now set up the progressbar and message status in another grid
                userProgressBar = new ProgressBar();
                userProgressBar.SetValue(Grid.RowProperty, 2);
                userProgressBar.SetValue(Grid.ColumnProperty, 0);
                userProgressBar.SetValue(Grid.ColumnSpanProperty, 2);
                userProgressBar.IsIndeterminate     = false;
                userProgressBar.Orientation         = Orientation.Horizontal;
                userProgressBar.Width               = 412;
                userProgressBar.Height              = 18;
                userProgressBar.Margin              = new Thickness(36, 0, 0, 0);
                userProgressBar.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;

                // FBS bug 74960 -- 6/1/12
                ToolTip tooltip   = new ToolTip();
                Binding tbBinding = new Binding("GlobalAcctProgressMsg");
                tbBinding.Source = ar;
                tooltip.SetBinding(ContentControl.ContentProperty, tbBinding);
                ToolTipService.SetToolTip(userProgressBar, tooltip);

                // Change the background and foreground colors
                SolidColorBrush scbBack = new SolidColorBrush();
                scbBack.Color = Color.FromArgb(255, 218, 227, 235); // #FFDAE3EB
                userProgressBar.Background = scbBack;
                userProgressBar.Foreground = Brushes.DodgerBlue;
                ///

                Binding upbBinding = new Binding("PBValue");
                upbBinding.Source = ar;
                userProgressBar.SetBinding(ProgressBar.ValueProperty, upbBinding);
                if (!ViewModel.GetScheduleViewModel().IsPreviewMode())
                {
                    urGrid.Children.Add(userProgressBar);
                }

                userStatusMsg            = new Label();
                userStatusMsg.Visibility = System.Windows.Visibility.Visible;
                userStatusMsg.SetValue(Grid.RowProperty, 3);
                userStatusMsg.SetValue(Grid.ColumnProperty, 0);
                userStatusMsg.SetValue(Grid.ColumnSpanProperty, 2);
                userStatusMsg.MinWidth            = 300;
                userStatusMsg.Margin              = new Thickness(30, 0, 0, 0);
                userStatusMsg.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
                userStatusMsg.FontStyle           = FontStyles.Italic;
                Binding usmBinding = new Binding("PBMsgValue");
                usmBinding.Source = ar;
                userStatusMsg.SetBinding(Label.ContentProperty, usmBinding);
                urGrid.Children.Add(userStatusMsg);
                //////////////

                userItem.Content = urGrid;

                tabCtrl.Items.Add(userItem);
                userItem.IsSelected = true;

                Binding binding = new Binding();

                // wrap in NotifyCollectionChangedWrapper so we can update collection from a different thread
                binding.Source = new NotifyCollectionChangedWrapper <UserResultsViewModel>(ar.UserResultsList);
                //

                BindingOperations.SetBinding(urListView[accountnum], ListView.ItemsSourceProperty,
                                             binding);
            }
            catch (Exception excep)
            {
                Log.err("error when get usermigration information " + excep.Message);
            }
        }
Beispiel #3
0
        protected void HandleDoubleClick(object sender, MouseButtonEventArgs e)
        // Opens a new tab for the account that was dbl-clicked
        {
            using (LogBlock logblock = Log.NotTracing() ? null : new LogBlock(GetType() + "." + System.Reflection.MethodBase.GetCurrentMethod().Name))
            {
                if (iTabCount == 16)
                {
                    MessageBox.Show(string.Format("Only 16 tabs may be open at a time", MessageBoxButton.OK, MessageBoxImage.Error));
                    return;
                }

                ListViewItem lvi     = sender as ListViewItem;
                var          content = lvi.Content as AccountResultsViewModel;
                TabControl   tabCtrl = FindParent(lvi, typeof(TabControl)) as TabControl;

                // ===================================================================
                // Create the new tab
                // ===================================================================
                CloseableTabItem userItem = new CloseableTabItem();

                userItem.Header = content.AccountName;

                // get accountnum so we can keep the listboxes and listviews straight
                int accountnum             = GetAcctNum((string)userItem.Header);
                AccountResultsViewModel ar = ViewModel.AccountResultsList[accountnum];

                try
                {
                    if (urListView[accountnum] != null)
                    {
                        for (int i = 0; i < tabCtrl.Items.Count; i++)
                        {
                            TabItem item = (TabItem)tabCtrl.Items[i];
                            if (item.Header.ToString() == content.AccountName)
                            {
                                tabCtrl.SelectedIndex = i;
                                break;
                            }
                        }
                        return;
                    }
                    iTabCount++;


                    // ===================================================================
                    // Create controls on the new tab
                    // ===================================================================

                    // =================================
                    // Client area = 4-row Grid
                    // =================================
                    Grid urGrid = new Grid();

                    // Row 1 holds top listview
                    RowDefinition rowDef1 = new RowDefinition();
                    rowDef1.Height = new GridLength(1, GridUnitType.Star);
                    urGrid.RowDefinitions.Add(rowDef1);

                    // Row 2 holds errors label
                    RowDefinition rowDef2 = new RowDefinition();
                    rowDef2.Height = GridLength.Auto;
                    urGrid.RowDefinitions.Add(rowDef2);

                    // Row 3 holds Problems listview
                    RowDefinition rowDef3 = new RowDefinition();
                    rowDef3.MaxHeight = 145;
                    urGrid.RowDefinitions.Add(rowDef3);

                    // Row 4 holds progress bar
                    RowDefinition rowDef4 = new RowDefinition();
                    rowDef4.Height = GridLength.Auto;
                    urGrid.RowDefinitions.Add(rowDef4);

                    // Row 5 holds status msg
                    RowDefinition rowDef5 = new RowDefinition();
                    rowDef5.Height = GridLength.Auto;
                    urGrid.RowDefinitions.Add(rowDef5);

                    // =================================================================
                    // Row 1 contains Folders ListView
                    // =================================================================
                    urListView[accountnum]          = new ListView();
                    urListView[accountnum].FontSize = 11;
                    urListView[accountnum].SetValue(Grid.RowProperty, 0);
                    urListView[accountnum].Margin = new Thickness(5);
                    urListView[accountnum].Name   = "lstFolderResults";

                    // ListView contains a GridView
                    GridView urGridView = new GridView();

                    // ---------------------------------------------------------------------
                    // Columns (set up columns widths so we won't get a horizontal scrollbar)
                    // ---------------------------------------------------------------------
                    // DCB How to add a new column
                    //
                    // 1. Add a new block below
                    // 2. Add a source for the binding in "class FolderResultsViewModel" (name of the member must match binding name!)
                    // 3. 2 reqs you add a member to "class FolderResults"
                    // 4. Add member in class MigrationFolder in "MigrationAccount.cs"  (This is the member CSMigrationWrapper will assign to)
                    // 5. Add a block to folder_onchanged (this is called when 4 is updated, and transfers the value to the UI)

                    // FolderName Column
                    GridViewColumnHeader gvc1H = new GridViewColumnHeader();
                    gvc1H.FontSize = 11;
                    gvc1H.Width    = 190;
                    gvc1H.Content  = " Folder";
                    gvc1H.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
                    GridViewColumn gvc1 = new GridViewColumn();
                    gvc1.DisplayMemberBinding = new Binding("FolderName");
                    gvc1.Header = gvc1H;
                    urGridView.Columns.Add(gvc1);

                    // Processed Column
                    GridViewColumnHeader gvchProgress = new GridViewColumnHeader();
                    gvchProgress.FontSize = 11;
                    gvchProgress.Width    = 120;
                    gvchProgress.Content  = " Processed";
                    gvchProgress.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
                    GridViewColumn gvcProgress = new GridViewColumn();
                    gvcProgress.DisplayMemberBinding = new Binding("FolderProgress");
                    gvcProgress.Header = gvchProgress;
                    urGridView.Columns.Add(gvcProgress);

                    // Migrated Column
                    GridViewColumnHeader gvchMigrated = new GridViewColumnHeader();
                    gvchMigrated.FontSize = 11;
                    gvchMigrated.Width    = 50;
                    gvchMigrated.Content  = " Migrated";
                    gvchMigrated.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
                    GridViewColumn gvcMigrated = new GridViewColumn();
                    gvcMigrated.DisplayMemberBinding = new Binding("NumFolderItemsMigrated");
                    gvcMigrated.Header = gvchMigrated;
                    urGridView.Columns.Add(gvcMigrated);

                    // Filtered Skips Column
                    GridViewColumnHeader gvchSkipFilter = new GridViewColumnHeader();
                    gvchSkipFilter.FontSize = 11;
                    gvchSkipFilter.Width    = 90;
                    gvchSkipFilter.Content  = "Skipped by Filter";
                    gvchSkipFilter.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
                    GridViewColumn gvcSkipFilter = new GridViewColumn();
                    gvcSkipFilter.DisplayMemberBinding = new Binding("NumFolderSkipsFilter");
                    gvcSkipFilter.Header = gvchSkipFilter;
                    urGridView.Columns.Add(gvcSkipFilter);

                    // History Skips Column
                    GridViewColumnHeader gvchSkipHistory = new GridViewColumnHeader();
                    gvchSkipHistory.FontSize = 11;
                    gvchSkipHistory.Width    = 100;
                    gvchSkipHistory.Content  = "Skipped by History";
                    gvchSkipHistory.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
                    GridViewColumn gvcSkipHistory = new GridViewColumn();
                    gvcSkipHistory.DisplayMemberBinding = new Binding("NumFolderSkipsHistory");
                    gvcSkipHistory.Header = gvchSkipHistory;
                    urGridView.Columns.Add(gvcSkipHistory);

                    // Errs Column
                    GridViewColumnHeader gvchErrs = new GridViewColumnHeader();
                    gvchErrs.FontSize = 11;
                    gvchErrs.Width    = 40;
                    gvchErrs.Content  = " Errs";
                    gvchErrs.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
                    GridViewColumn gvcErrs = new GridViewColumn();
                    gvcErrs.DisplayMemberBinding = new Binding("NumFolderErrs");                         // Binding names MUST MATCH THE NAMES IN FolderResltsViewModel.cs
                    gvcErrs.Header = gvchErrs;
                    urGridView.Columns.Add(gvcErrs);

                    // Warns Column
                    GridViewColumnHeader gvchWarns = new GridViewColumnHeader();
                    gvchWarns.FontSize = 11;
                    gvchWarns.Width    = 40;
                    gvchWarns.Content  = " Warns";
                    gvchWarns.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
                    GridViewColumn gvcWarns = new GridViewColumn();
                    gvcWarns.DisplayMemberBinding = new Binding("NumFolderWarns");
                    gvcWarns.Header = gvchWarns;
                    urGridView.Columns.Add(gvcWarns);

                    // Min
                    GridViewColumnHeader gvchMin = new GridViewColumnHeader();
                    gvchMin.FontSize = 11;
                    gvchMin.Width    = 60;
                    gvchMin.Content  = " Min (ms)";
                    gvchMin.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
                    GridViewColumn gvcMin = new GridViewColumn();
                    gvcMin.DisplayMemberBinding = new Binding("FolderItemMillisecsMin");
                    gvcMin.Header = gvchMin;
                    urGridView.Columns.Add(gvcMin);

                    // Avg
                    GridViewColumnHeader gvchAvg = new GridViewColumnHeader();
                    gvchAvg.FontSize = 11;
                    gvchAvg.Width    = 60;
                    gvchAvg.Content  = " Avg (ms)";
                    gvchAvg.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
                    GridViewColumn gvcAvg = new GridViewColumn();
                    gvcAvg.DisplayMemberBinding = new Binding("FolderItemMillisecsAvg");
                    gvcAvg.Header = gvchAvg;
                    urGridView.Columns.Add(gvcAvg);

                    // Max
                    GridViewColumnHeader gvchMax = new GridViewColumnHeader();
                    gvchMax.FontSize = 11;
                    gvchMax.Width    = 60;
                    gvchMax.Content  = " Max (ms)";
                    gvchMax.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
                    GridViewColumn gvcMax = new GridViewColumn();
                    gvcMax.DisplayMemberBinding = new Binding("FolderItemMillisecsMax");
                    //gvcMaxC.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Center;
                    gvcMax.Header = gvchMax;
                    urGridView.Columns.Add(gvcMax);

                    // Elapsed
                    GridViewColumnHeader gvchElapsed = new GridViewColumnHeader();
                    gvchElapsed.FontSize = 11;
                    gvchElapsed.Width    = 70;
                    gvchElapsed.Content  = " Elapsed";
                    gvchElapsed.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
                    GridViewColumn gvcElapsed = new GridViewColumn();
                    gvcElapsed.DisplayMemberBinding = new Binding("FolderElapsed");
                    gvcElapsed.Header = gvchElapsed;
                    urGridView.Columns.Add(gvcElapsed);

                    // FolderElapsedReadWriteRatio
                    GridViewColumnHeader gvchElapsedReadWriteRatio = new GridViewColumnHeader();
                    gvchElapsedReadWriteRatio.FontSize = 11;
                    gvchElapsedReadWriteRatio.Width    = 104;
                    gvchElapsedReadWriteRatio.Content  = " Read:Write (%time)";
                    gvchElapsedReadWriteRatio.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Left;
                    GridViewColumn gvcElapsedReadWriteRatio = new GridViewColumn();
                    gvcElapsedReadWriteRatio.DisplayMemberBinding = new Binding("FolderElapsedReadWriteRatio");
                    gvcElapsedReadWriteRatio.Header = gvchElapsedReadWriteRatio;
                    urGridView.Columns.Add(gvcElapsedReadWriteRatio);

                    urListView[accountnum].View = urGridView;
                    urGrid.Children.Add(urListView[accountnum]);

                    // ----------------------------------
                    // Bind listview to FolderResultsList
                    // ----------------------------------
                    // Wrap in NotifyCollectionChangedWrapper so we can update collection from a different thread
                    Binding binding = new Binding();
                    binding.Source = new NotifyCollectionChangedWrapper <FolderResultsViewModel>(ar.FolderResultsList);
                    BindingOperations.SetBinding(urListView[accountnum], ListView.ItemsSourceProperty, binding);


                    // =================================================================
                    // Row 2 contains Problems label
                    // =================================================================
                    userErrsMsg            = new Label();
                    userErrsMsg.Visibility = System.Windows.Visibility.Visible;
                    userErrsMsg.SetValue(Grid.RowProperty, 1);
                    userErrsMsg.SetValue(Grid.ColumnProperty, 0);
                    userErrsMsg.SetValue(Grid.ColumnSpanProperty, 2);
                    userErrsMsg.MinWidth            = 300;
                    userErrsMsg.Margin              = new Thickness(5, 0, 0, 0);
                    userErrsMsg.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
                    userErrsMsg.VerticalAlignment   = System.Windows.VerticalAlignment.Bottom;
                    userErrsMsg.Content             = "Problems";
                    urGrid.Children.Add(userErrsMsg);

                    // =================================================================
                    // Row 3 contains Problems Listbox
                    // =================================================================
                    lbErrors[accountnum]          = new ListBox();
                    lbErrors[accountnum].FontSize = 11;
                    lbErrors[accountnum].SetValue(Grid.RowProperty, 2);
                    lbErrors[accountnum].Margin              = new Thickness(5, 5, 5, 5);
                    lbErrors[accountnum].MinHeight           = 120;
                    lbErrors[accountnum].MaxHeight           = 120;
                    lbErrors[accountnum].MinWidth            = 450;
                    lbErrors[accountnum].HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;
                    lbErrors[accountnum].VerticalAlignment   = System.Windows.VerticalAlignment.Top;
                    urGrid.Children.Add(lbErrors[accountnum]);
                    // NB Data binding not currently set up for this, rather it is populated when the tab gains focus - see HandleGotFocus()

                    // =================================================================
                    // Row 4 contains Progressbar
                    // =================================================================
                    userProgressBar = new ProgressBar();
                    userProgressBar.SetValue(Grid.RowProperty, 3);
                    userProgressBar.SetValue(Grid.ColumnProperty, 0);
                    userProgressBar.SetValue(Grid.ColumnSpanProperty, 2);
                    userProgressBar.IsIndeterminate     = false;
                    userProgressBar.Orientation         = Orientation.Horizontal;
                    userProgressBar.Height              = 18;
                    userProgressBar.Margin              = new Thickness(5, 5, 5, 5);
                    userProgressBar.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;

                    // FBS bug 74960 -- 6/1/12
                    ToolTip tooltip   = new ToolTip();
                    Binding tbBinding = new Binding("GlobalAcctProgressMsg");
                    tbBinding.Source = ar;
                    tooltip.SetBinding(ContentControl.ContentProperty, tbBinding);
                    ToolTipService.SetToolTip(userProgressBar, tooltip);

                    // Change the background and foreground colors
                    SolidColorBrush scbBack = new SolidColorBrush();
                    scbBack.Color = Color.FromArgb(255, 218, 227, 235); // #FFDAE3EB
                    userProgressBar.Background = scbBack;
                    userProgressBar.Foreground = Brushes.DodgerBlue;

                    Binding upbBinding = new Binding("PBValue");
                    upbBinding.Source = ar;
                    userProgressBar.SetBinding(ProgressBar.ValueProperty, upbBinding);
                    if (!ViewModel.GetScheduleViewModel().IsPreviewMode())
                    {
                        urGrid.Children.Add(userProgressBar);
                    }

                    // =================================================================
                    // Row 5 contains Account Status message
                    // =================================================================
                    userStatusMsg            = new Label();
                    userStatusMsg.Visibility = System.Windows.Visibility.Visible;
                    userStatusMsg.SetValue(Grid.RowProperty, 4);
                    userStatusMsg.SetValue(Grid.ColumnProperty, 0);
                    userStatusMsg.SetValue(Grid.ColumnSpanProperty, 2);
                    userStatusMsg.MinWidth            = 300;
                    userStatusMsg.Margin              = new Thickness(5, 0, 0, 0);
                    userStatusMsg.HorizontalAlignment = System.Windows.HorizontalAlignment.Left;
                    userStatusMsg.FontStyle           = FontStyles.Italic;
                    Binding usmBinding = new Binding("AccountStatus");
                    usmBinding.Source = ar;
                    userStatusMsg.SetBinding(Label.ContentProperty, usmBinding);
                    urGrid.Children.Add(userStatusMsg);

                    userItem.Content = urGrid;

                    // ===========================================================================
                    // Add the tab
                    // ===========================================================================
                    tabCtrl.Items.Add(userItem);
                    userItem.IsSelected = true;
                }
                catch (Exception excep)
                {
                    Log.err("error when get usermigration information " + excep.Message);
                }
            }
        }