Quantcast
Viewing all articles
Browse latest Browse all 18858

Loading Data into a Tab Control

I have an application that loads data from an XML file.  The data sections are tab controlled and separated by folders.  Each folder is a different "site" with it's OWN xml file.  The application only loads data when I select a "site" and only THAT site's data is loaded.  The problem is that ALL the data loads at the same time.  I want the data to load based on the tab.  So when I click the "General" tab only the "General" data is loaded and so forth.  How do I accomplish this? 

XAML

<Grid x:Name="grdTabControl"
              DockPanel.Dock="Right"><TabControl Margin="0,5,5,3"
                         Style="{StaticResource ResourceKey= TabControlStyle}"><TabItem x:Name="tbiGeneral"
                         Header="General"
                         IsSelected="True"
                            Style="{StaticResource ResourceKey= TabItemStyle}"><DockPanel><StackPanel DockPanel.Dock="Top"><Border Style="{StaticResource ResourceKey= BorderStyle}"><Border.Effect><DropShadowEffect BlurRadius="10"
                                                      ShadowDepth="5" /></Border.Effect><Grid x:Name="grdGeneralTab"
                                      Style="{StaticResource ResourceKey=GridStyle}"><Grid.ColumnDefinitions><ColumnDefinition Width="auto" /><ColumnDefinition Width="auto" /></Grid.ColumnDefinitions><Grid.RowDefinitions><RowDefinition Height="auto" /><RowDefinition Height="auto" /><RowDefinition Height="auto" /><RowDefinition Height="auto" /><RowDefinition Height="auto" /></Grid.RowDefinitions><Grid.Effect><DropShadowEffect BlurRadius="10"
                                                          ShadowDepth="5" /></Grid.Effect><Label x:Name="lblFacilityName"
                                           Content="Facility Name"
                                           Grid.Column="0"
                                           Grid.Row="0"
                                           VerticalAlignment="Center"
                                           Style="{StaticResource ResourceKey=GeneralTable}" /><TextBox x:Name="txtFacilityName"
                                             Grid.Column="1"
                                             Margin="5,5,0,5"
                                             Width="129"
                                             Foreground="Black"
                                             HorizontalAlignment="Left"
                                             TextChanged="txbFacilityName_TextChanged"
                                             Text="{Binding ConfigFile.FacilityName, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" /><Label x:Name="lblFacility"
                                           Content="Facility"
                                           Grid.Column="0"
                                           Grid.Row="1"
                                           VerticalAlignment="Center"
                                           Style="{StaticResource ResourceKey=GeneralTable}" /><TextBox x:Name="txtFacility"
                                             Grid.Column="1"
                                             Grid.Row="1"
                                             Width="129"
                                             Margin="5,5,0,5"
                                             HorizontalAlignment="Left"
                                             TextChanged="txbFacility_TextChanged"
                                             Text="{Binding ConfigFile.Facility, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" /><Label x:Name="lblStatus"
                                           Content="Status"
                                           Grid.Column="0"
                                           Grid.Row="2"
                                           VerticalAlignment="Center"
                                           Style="{StaticResource ResourceKey=GeneralTable}" /><StackPanel Grid.Column="1"
                                                Grid.Row="2"
                                                Grid.ColumnSpan="2"
                                                HorizontalAlignment="Center"
                                                VerticalAlignment="Center"><Grid><Grid.ColumnDefinitions><ColumnDefinition Width="*" /><ColumnDefinition Width="*" /></Grid.ColumnDefinitions><RadioButton  x:Name="rdbStatusOn"
                                                          GroupName="Status"
                                                          Margin="2,0,5,0"
                                                          HorizontalAlignment="Left"
                                                          Grid.Column="0"
                                                          IsChecked="{Binding ConfigFile.ApplicationStatus, Converter={local:StatusStringToBooleanConverter}}"
                                                          Click="rdbStatusOn_CheckChange">ONLINE</RadioButton><RadioButton  x:Name="rdbStatusOff"
                                                          GroupName="Status"
                                                          Margin="5, 0, 0, 2"
                                                          HorizontalAlignment="Right"
                                                          Grid.Column="1"
                                                          IsChecked="{Binding ConfigFile.ApplicationStatus, Converter={local:StatusStringToBooleanConverter}, ConverterParameter=1}"
                                                          Click="rdbStatusOff_CheckChange">OFFLINE</RadioButton></Grid></StackPanel><Label x:Name="lblTimeout"
                                           Content="Timeout"
                                           Grid.Column="0"
                                           Grid.Row="3"
                                           VerticalAlignment="Center"
                                           Style="{StaticResource ResourceKey=GeneralTable}" /><TextBox x:Name="txtTimeout"
                                             Grid.Column="1"
                                             Grid.Row="3"
                                             Width="129"
                                             Margin="5,5,0,5"
                                             HorizontalAlignment="Left"
                                             TextChanged="txbTimeout_TextChanged"
                                             Text="{Binding ConfigFile.QueryTimeout, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" /><Label x:Name="lblRefreshInterval"
                                           Content="Refresh Interval"
                                           Grid.Column="0"
                                           Grid.Row="4"
                                           VerticalAlignment="Center"
                                           Style="{StaticResource ResourceKey=GeneralTable}" /><TextBox x:Name="txtRefreshInterval"
                                             Grid.Column="1"
                                             Grid.Row="4"
                                             Width="129"
                                             Margin="5,5,0,5"
                                             HorizontalAlignment="Left"
                                             TextChanged="txbRefreshInterval_TextChanged"
                                             Text="{Binding ConfigFile.RefreshInterval, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" /></Grid></Border></StackPanel></DockPanel></TabItem><TabItem x:Name="tbiCategories"
                         Header="Categories"
                         Style="{StaticResource ResourceKey= TabItemStyle}"><DockPanel><Border Margin="5"
                                Style="{StaticResource ResourceKey= BorderStyle}"><Border.Effect><DropShadowEffect BlurRadius="10"
                                                  ShadowDepth="5" /></Border.Effect><Grid Margin="5"
                                  HorizontalAlignment="Stretch"
                                  Style="{StaticResource ResourceKey=GridStyle}"><Grid.ColumnDefinitions><ColumnDefinition Width="184*" /><ColumnDefinition Width="107*"/><ColumnDefinition Width="auto" /><ColumnDefinition Width="290*" /></Grid.ColumnDefinitions><Grid.RowDefinitions><RowDefinition Height="auto" /><RowDefinition Height="*" /></Grid.RowDefinitions><!--Categories ListBox--><Border Grid.Column="0"
                                        Grid.ColumnSpan="4"
                                        Grid.Row="0"
                                        Margin="5"
                                        Style="{StaticResource ResourceKey= BorderStyle}"><Border.Effect><DropShadowEffect BlurRadius="10"
                                                          ShadowDepth="5" /></Border.Effect><Grid Margin="5"><Grid.RowDefinitions><RowDefinition Height="*" /><RowDefinition Height="auto" /><RowDefinition Height="*" /></Grid.RowDefinitions><Label Content="Categories"
                                               Grid.Row="0"
                                               Style="{StaticResource ResourceKey=categoryHeaderLabel}" /><ListBox x:Name="lbCategories"
                                                 IsSynchronizedWithCurrentItem="True"
                                                 Grid.Row="1"
                                                 Height="100"
                                                 Margin="5,5,5,0"
                                                 DisplayMemberPath="description"
                                                 ItemsSource="{Binding ConfigFile.OperationCategories, Mode=TwoWay}"
                                                 SelectionChanged="lbCategories_SelectionChanged"
                                                 Style="{StaticResource ResourceKey= CategoryListBoxStyle}"></ListBox><Button x:Name="btnAddCategories"
                                                Content="+"
                                                Grid.Row="2"
                                                HorizontalAlignment="Left"
                                                Style="{StaticResource ResourceKey=categoryAddRemoveButtons}"
                                                Click="btnAddCategories_Click"></Button><Button x:Name="btnRemoveCategories"
                                                Content="-"
                                                Grid.Row="2"
                                                HorizontalAlignment="Right"
                                                Style="{StaticResource ResourceKey=categoryAddRemoveButtons}"
                                                Click="btnRemoveCategories_Click"></Button></Grid></Border><!--Available Operations ListBox--><Border Grid.Column="0"
                                        Grid.Row="1"
                                        Margin="5"
                                        Style="{StaticResource ResourceKey= BorderStyle}" Grid.ColumnSpan="2"><Border.Effect><DropShadowEffect BlurRadius="10"
                                                          ShadowDepth="5" /></Border.Effect><Grid><Grid.RowDefinitions><RowDefinition Height="auto" /><RowDefinition Height="*" /></Grid.RowDefinitions><Label Content="Available Operations"
                                               Grid.Row="0"
                                               Style="{StaticResource ResourceKey=categoryHeaderLabel}" /><ListBox x:Name="lbAvailableOperations"
                                                 Grid.Row="1"
                                                 Margin="5"
                                                 SelectionMode="Multiple"
                                                 DisplayMemberPath="OPERATION_DESCRIPTION"
                                                 ItemsSource="{Binding FilteredAvailableOperations}"
                                                 Style="{StaticResource ResourceKey= CategoryListBoxStyle}"></ListBox></Grid></Border><!--Add/Remove Arrow Buttons--><StackPanel Grid.Column="2"
                                            Grid.Row="1"
                                            Width="25"
                                            Margin="5,62"
                                            VerticalAlignment="Center"><Button x:Name="addButton"
                                            Margin="0,5,0,5"
                                            Content=">"
                                            Style="{StaticResource ResourceKey=categoryArrowButtons}"
                                            Click="addButton_Click" /><Button x:Name="addButtonAll"
                                            Margin="0,5,0,5"
                                            Content=">>"
                                            Style="{StaticResource ResourceKey=categoryArrowButtons}"
                                            Click="addButtonAll_Click" /><Button x:Name="removeButton"
                                            Margin="0,5,0,5"
                                            Content="&lt;"
                                            Style="{StaticResource ResourceKey=categoryArrowButtons}"
                                            Click="removeButton_Click" /><Button x:Name="removeButtonAll"
                                            Margin="0,5,0,5"
                                            Content="&lt;&lt;"
                                            Style="{StaticResource ResourceKey=categoryArrowButtons}"
                                            Click="removeButtonAll_Click" /></StackPanel><!--Assigned Categories ListBox--><Border Grid.Column="3"
                                        Grid.Row="1"
                                        Margin="5"
                                        Style="{StaticResource ResourceKey= BorderStyle}"><Border.Effect><DropShadowEffect BlurRadius="10"
                                                          ShadowDepth="5" /></Border.Effect><Grid><Grid.RowDefinitions><RowDefinition Height="auto" /><RowDefinition Height="131*" /><RowDefinition Height="52*" /></Grid.RowDefinitions><Label Content="Assigned Operations"
                                               Grid.Row="0"
                                               Style="{StaticResource ResourceKey=categoryHeaderLabel}" /><ListBox x:Name="lbAssignedOperations"
                                                 Margin="5,5.4,5.4,5"
                                                 Grid.Row="1"
                                                 DisplayMemberPath="description"
                                                 SelectedValuePath="id"
                                                 ItemsSource="{Binding AssignedOperations}"
                                                 Style="{StaticResource ResourceKey= CategoryListBoxStyle}"
                                                 Grid.RowSpan="2"></ListBox></Grid></Border></Grid></Border></DockPanel></TabItem><!--Colors Tab--><TabItem x:Name="tbiColors"
                         Header="Colors"
                         Style="{StaticResource ResourceKey= TabItemStyle}"><DockPanel><StackPanel DockPanel.Dock="Top"><Border Style="{StaticResource ResourceKey= BorderStyle}"><Border.Effect><DropShadowEffect BlurRadius="10"
                                                      ShadowDepth="5" /></Border.Effect><Grid x:Name="grdColorTab"
                                      Style="{StaticResource ResourceKey=GridStyle}"><Grid.ColumnDefinitions><ColumnDefinition Width="auto" /><ColumnDefinition Width="auto" /><ColumnDefinition Width="*" /></Grid.ColumnDefinitions><Grid.RowDefinitions><RowDefinition Height="auto" /><RowDefinition Height="auto" /><RowDefinition Height="auto" /><RowDefinition Height="auto" /><RowDefinition Height="auto" /><RowDefinition Height="*" /></Grid.RowDefinitions><Label x:Name="lblNormal"
                                           Content="Normal"
                                           Grid.Column="0"
                                           Grid.Row="0"
                                           VerticalAlignment="Center"
                                           Style="{StaticResource ResourceKey=GeneralTable}" /><TextBox x:Name="txtNormal"
                                             Grid.Column="1"
                                             Margin="5,5,0,5"
                                             Width="129"
                                             HorizontalAlignment="Left"
                                             Text="{Binding ConfigFile.NormalColor, Mode=TwoWay}" /><xtck:ColorPicker Grid.Column="2"
                                                      Width="129"
                                                      Margin="5"
                                                      HorizontalAlignment="Left"
                                                      SelectedColor="{Binding ConfigFile.NormalColor, Mode=TwoWay}" /><Label x:Name="lblBehindSchedule"
                                           Content="Behind Schedule"
                                           Grid.Column="0"
                                           Grid.Row="1"
                                           VerticalAlignment="Center"
                                           Style="{StaticResource ResourceKey=GeneralTable}" /><TextBox x:Name="txtBehindSchedule"
                                             Grid.Column="1"
                                             Grid.Row="1"
                                             HorizontalAlignment="Left"
                                             Width="129"
                                             Margin="5,5,5,5"
                                             Text="{Binding ConfigFile.BehindColor, Mode=TwoWay}" /><xtck:ColorPicker Grid.Column="2"
                                                      Grid.Row="1"
                                                      Width="129"
                                                      Margin="5"
                                                      HorizontalAlignment="Left"
                                                      SelectedColor="{Binding ConfigFile.BehindColor, Mode=TwoWay}" /><Label x:Name="lblOverdue"
                                           Content="Overdue"
                                           Grid.Column="0"
                                           Grid.Row="2"
                                           VerticalAlignment="Center"
                                           Style="{StaticResource ResourceKey=GeneralTable}" /><TextBox x:Name="txtOverdue"
                                             Grid.Column="1"
                                             Grid.Row="2"
                                             HorizontalAlignment="Left"
                                             Width="129"
                                             Margin="5,5,5,5"
                                             Text="{Binding ConfigFile.OverdueColor, Mode=TwoWay}" /><xtck:ColorPicker Grid.Column="2"
                                                      Grid.Row="2"
                                                      Width="129"
                                                      Margin="5"
                                                      HorizontalAlignment="Left"
                                                      SelectedColor="{Binding ConfigFile.OverdueColor, Mode=TwoWay}" /><Label x:Name="lblHold"
                                           Content="Hold"
                                           Grid.Column="0"
                                           Grid.Row="3"
                                           VerticalAlignment="Center"
                                           Style="{StaticResource ResourceKey=GeneralTable}" /><TextBox x:Name="txtHold"
                                             Grid.Column="1"
                                             Grid.Row="3"
                                             HorizontalAlignment="Left"
                                             Width="129"
                                             Margin="5,5,5,5"
                                             Text="{Binding ConfigFile.HoldColor, Mode=TwoWay}" /><xtck:ColorPicker Grid.Column="2"
                                                      Grid.Row="3"
                                                      Width="129"
                                                      Margin="5"
                                                      HorizontalAlignment="Left"
                                                      SelectedColor="{Binding ConfigFile.HoldColor, Mode=TwoWay}" /><Label x:Name="lblDelay"
                                           Content="Delay"
                                           Grid.Column="0"
                                           Grid.Row="4"
                                           VerticalAlignment="Center"
                                           Style="{StaticResource ResourceKey=GeneralTable}" /><TextBox x:Name="txtDelay"
                                             Grid.Column="1"
                                             Grid.Row="4"
                                             HorizontalAlignment="Left"
                                             Width="129"
                                             Margin="5,5,5,5"
                                             Text="{Binding ConfigFile.DelayColor, Mode=TwoWay}" /><xtck:ColorPicker Grid.Column="2"
                                                      Grid.Row="4"
                                                      Width="129"
                                                      Margin="5"
                                                      HorizontalAlignment="Left"
                                                      SelectedColor="{Binding ConfigFile.DelayColor, Mode=TwoWay}" /><Label x:Name="lblBehindSchedulePercent"
                                           Content="Behind Schedule Percent"
                                           Grid.Column="0"
                                           Grid.Row="5"
                                           VerticalAlignment="Center"
                                           Style="{StaticResource ResourceKey=GeneralTable}" /><TextBox x:Name="txtBehindSchedulePercent"
                                             Grid.Column="1"
                                             Grid.Row="5"
                                             HorizontalAlignment="Left"
                                             Width="129"
                                             Margin="5,5,5,5"
                                             Text="{Binding ConfigFile.LatePercentage, Mode=TwoWay}" /><Slider Grid.Column="2"
                                            Grid.Row="5"
                                            Width="129"
                                            Margin="5"
                                            Minimum="0"
                                            Maximum="100"
                                            HorizontalAlignment="Left"
                                            Interval="1"
                                            TickFrequency="1"
                                            IsSnapToTickEnabled="True"
                                            Value="{Binding ConfigFile.LatePercentage, Mode=TwoWay}" /></Grid></Border></StackPanel></DockPanel></TabItem></TabControl></Grid>

Code Behind

public partial class MainPage : Page
    {
        public MainPage()
        {
            InitializeComponent();
            ViewModelMainPage dataContext = (ViewModelMainPage)this.DataContext;
            Loaded += fileLoad;

            //Register additional windows with the LoaderService class so they can be called from the ViewModel.
            ViewModelBase.LoaderService.Register(typeof(BulletinViewer), typeof(ViewModelBulletinViewer));
            ViewModelBase.LoaderService.Register(typeof(AddCategoriesWindow), typeof(ViewModelAddCategoriesWindow));
        }
}

ViewModel Code

  public class ViewModelMainPage : ViewModelBase
{
 public void LoadConfigFile(object sender)
        {
            _isLoading = true;
            ListView myListView = (ListView)sender;
            Folder selectedItem = null;

            if (myListView.SelectedItem != null)
            {
                selectedItem = (Folder)myListView.SelectedItem;

                this.ConfigFile = new ApplicationPreferences(selectedItem.PathName);
                this.ConfigFile.Load();
                LoadAvailableOperations(this.ConfigFile.Facility);
                LoadFilteredOperations();
                UpdateOperationDescriptions(this.ConfigFile);
            }
            _isLoading = false;
        }
}



Viewing all articles
Browse latest Browse all 18858

Trending Articles