This is a migrated thread and some comments may be shown as answers.

RadComboBox Databinding resourcetypes

0 Answers 32 Views
ScheduleView
This is a migrated thread and some comments may be shown as answers.
Mario
Top achievements
Rank 1
Mario asked on 10 Nov 2011, 05:26 PM
Hello,  I need your help.

I have two resourcestype "Service" and "Local"
I load this resources using two queries from my screen:

      
 
.........................
     
........
resourceTypes = new List<ResourceType>(); 
     var objDataContext = (IContentItem)this.DataContext; 
     var Screen = (Microsoft.LightSwitch.Client.IScreenObject)objDataContext.Screen; 
     Screen.Details.Dispatcher.BeginInvoke(() => 
     
             
         resourceType_Service = new ResourceType("Serviço"); 
         var serviceResources = (Screen as EditableScheduleViewApptsGrid).ServiceToAppointment.ToList(); 
         this.resourceServiceToAppt = serviceResources; 
         foreach (SERVICE iten in serviceResources) 
         
             Resource res = new Resource(iten.Name);                     
             resourceType_Service.Resources.Add(res); 
         
         ResourceType resourceType_Local = new ResourceType("Local"); 
         var localResources = (Screen as EditableScheduleViewApptsGrid).LocalActiveOrder.ToList(); 
         this.resourceLocalToAppt = localResources; 
         foreach (LOCAL iten in localResources) 
         
             Resource res = new Resource(iten.Code + " " + iten.Name); 
             resourceType_Local.Resources.Add(res); 
         
           
         resourceTypes.Add(resourceType_Service); 
         resourceTypes.Add(resourceType_Local);                 
     }); 
     xScheduleView.ResourceTypesSource = resourceTypes; 
         
     GroupDescriptions = new GroupDescriptionCollection(); 
     serviceGrp = new ResourceGroupDescription(); 
     serviceGrp.ResourceType = "Serviço"; 
     serviceGrp.ShowNullGroup = false; 
     locationGrp = new ResourceGroupDescription(); 
     locationGrp.ResourceType = "Local"; 
     locationGrp.ShowNullGroup = false; 
     GroupDescriptions.Add(serviceGrp); 
     GroupDescriptions.Add(locationGrp); 
     xScheduleView.GroupDescriptionsSource = GroupDescriptions;
I want to have two RadComboBox to show the resourcestype "Service" and "Local" and allow change the resources.
For example: If I have the resourcestype: 
        Service="serv1,serv2,serv3,serv4"
        Local= "Loc01,Loc2,Loc03,Loc04,Loc05"
I want to have in one combobox the items : "serv1,serv2,serv3,serv4" and in the other: "Loc01,Loc2,Loc03,Loc04,Loc05"; and when I select, for example, the item serv2, I want to changed the resourceType resourceType_Local to have only the resources "Loc04,Loc05".
Can I do that?
So I created one RadComboBox, ServicosComboBox,  to show the resourceType Service. My Xaml

..........
 <qsf:HeaderedContentControl Grid.Column="0" Margin="2" Style="{StaticResource Header}" Header="Definições">
            <StackPanel>
                  
                <StackPanel>
                    <Grid Height="30">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="105" />
                            <ColumnDefinition Width="65" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Text="Nº dias visiveis:" VerticalAlignment="Center" Margin="8" Grid.Column="0" />
                        <telerik:RadNumericUpDown Margin="0,2,2,2" Grid.Column="1" Minimum="1" Maximum="500" NumberDecimalDigits = "0"
                                              Value="{Binding ActiveViewDefinition.VisibleDays, ElementName=xScheduleView, Mode=TwoWay}" 
                                                  HorizontalAlignment="Right" Width="40" />
                    </Grid>
                </StackPanel>
                <StackPanel>
                    <Grid
                        <Grid.RowDefinitions >
                            <RowDefinition Height="*" />
                            <RowDefinition Height="*" />
                            <RowDefinition Height="*" />
                            <RowDefinition Height="*" />
                            <RowDefinition Height="*" />
                        </Grid.RowDefinitions>
                        <TextBlock Text="Agrupar por:" VerticalAlignment="Center" Margin="5" Grid.Column="0" />
                        <CheckBox Content="Serviços" Grid.Row="1"  
                              HorizontalAlignment="Left" Margin="8" 
                              Name="chkServices" VerticalAlignment="Center" Checked="chkServices_Checked" Unchecked="chkServices_Unchecked" />
                        <telerik:RadComboBox x:Name="ServicosComboBox"  Grid.Column="0" Grid.Row="2" Margin="8" IsEditable="True" 
                                             ClearSelectionButtonVisibility="Visible" ClearSelectionButtonContent="Mostrar Todos" 
                                             IsReadOnly="False" SelectedIndex="0" VerticalAlignment="Center"                                             
                                             
                                             >
  
                             
                              
                        </telerik:RadComboBox>
                    </Grid>
                    <ComboBox x:Name="ServicosCombo" Height="23"  Width="120" />
                </StackPanel>
                <telerik:RadCalendar x:Name="calendario" VerticalAlignment="Bottom" Margin="8" SelectedDate="{Binding CurrentDate, ElementName=xScheduleView, Mode=TwoWay}" SelectionMode="Single" HeaderVisibility="Visible" Foreground="{StaticResource MarkerBrush}" BorderBrush="{StaticResource AccentBrush}"  Background="{StaticResource ValidationBrush}" BorderThickness="1" FontSize="9" />
            </StackPanel>
        </qsf:HeaderedContentControl>
  
          
        <telerik:RadScheduleView  x:Name="xScheduleView" 
                                  ShowDialog="xScheduleView_ShowDialog" 
                                  AppointmentSaving="xScheduleView_AppointmentSaving"
                                 AppointmentCreated="xScheduleView_AppointmentCreated"
                                 AppointmentDeleted="xScheduleView_AppointmentDeleted" 
                                 AppointmentEdited="xScheduleView_AppointmentEdited"  
                                  AppointmentCreating="xScheduleView_AppointmentCreating"
                                 SpecialSlotStyleSelector="{StaticResource CustomSpecialSlotStyleSelector}"                                 
                                    Margin="2" Grid.Column="2"                            
                                    VerticalAlignment="Top"
                                  EditAppointmentDialogStyle="{StaticResource EditAppointmentDialogStyle}" >
              
              
            <telerik:RadScheduleView.ViewDefinitions>
                <telerik:DayViewDefinition  FirstDayOfWeek="Sunday" 
                                           DayStartTime="07:00" 
                                           DayEndTime="20:00" MajorTickLength="30min"
                                           CalendarWeekRule="FirstFourDayWeek" VisibleDays="5" />
                <telerik:WeekViewDefinition FirstDayOfWeek="Sunday" 
                                           DayStartTime="07:00" 
                                           DayEndTime="20:00" MajorTickLength="30min"
                                           CalendarWeekRule="FirstFourDayWeek" />
                <telerik:MonthViewDefinition FirstDayOfWeek="Sunday" 
                                             DayStartTime="07:00" 
                                           DayEndTime="20:00" 
                                           CalendarWeekRule="FirstFourDayWeek"/>
                <telerik:TimelineViewDefinition FirstDayOfWeek="Sunday" 
                                             DayStartTime="07:00" 
                                           DayEndTime="20:00" 
                                           CalendarWeekRule="FirstFourDayWeek" Orientation="Vertical" />
                  
            </telerik:RadScheduleView.ViewDefinitions>
  
              
        </telerik:RadScheduleView>
        <Border Grid.Column="2" Margin="2 37 2 2" BorderBrush="#FFC8C6C6" BorderThickness="1 0 1 1" Grid.Row="1" />
  
    </Grid>
</UserControl>


And I tried to put all the services in one

public IList<SERVICE> actualServiceToAppt;

 

to binding with the radcombobox:  
 

public

 

 

RadScheduleViewControl()

 

{

        InitializeComponent();

 

        xScheduleView.Loaded +=

 

new RoutedEventHandler(xScheduleView_Loaded);

 

        ServicosComboBox.Loaded +=

 

new RoutedEventHandler(Servicos_Loaded);

 

 

 

}


...........

private void Servicos_Loaded(object sender, RoutedEventArgs e)
        {
              
            var objDataContext = (IContentItem)this.DataContext;
            var Screen = (Microsoft.LightSwitch.Client.IScreenObject)objDataContext.Screen;
  
            Screen.Details.Dispatcher.BeginInvoke(delegate()
            {
  
                var serviceResources = (Screen as EditableScheduleViewApptsGrid).ServiceToAppointment.ToList();
                this.actualServiceToAppt = serviceResources;
                   
            });
  
        }


How can I do the data binding for the RacdComboBox and how can I change the resourcetypes from my RadSheduleView when I changed the item in the combo?
Or is there a better way to do?

Thanks for your help.

No answers yet. Maybe you can help?

Tags
ScheduleView
Asked by
Mario
Top achievements
Rank 1
Share this question
or