Custo resource selection change event?

9 posts, 0 answers
  1. ITA
    ITA avatar
    383 posts
    Member since:
    Aug 2009

    Posted 20 Dec 2013 Link to this post

    Hi,

    i'm using radscheduleview and appointments with custom resources:

    private IEnumerable<IResource> resourcesStatus;
     
    this.resourcesStatus = new List<IResource>
    {
          new Resource(Klassen.Language.GetTextbyCode("Erfasst"), "Status"),
          new Resource(Klassen.Language.GetTextbyCode("Aktiv"), "Status"),
          new Resource(Klassen.Language.GetTextbyCode("Fertig"), "Status"),
    };
     
    ResourceType resourceTypeStatus = new ResourceType("Status");
    resourceTypeStatus.Resources.AddRange(this.resourcesStatus);
     
    this.resourceTypes.Add(resourceTypeStatus);

    How do i add a selection change event for the resource (If i change the resourceStatus in the AppointmentDialiog, i want to do something)?

    Thanks a lot
    Best Regards

    Merry X-MAS
  2. Yana
    Admin
    Yana avatar
    4554 posts

    Posted 21 Dec 2013 Link to this post

    Hi Rene,

    I am not sure what exactly is the required approach, however, I would suggest that you take a look at the following Code Library project which demonstrates how you could extend the EditAppointmentDialog:
    http://www.telerik.com/community/code-library/wpf/scheduleview/how-to-create-advanced-custom-editapointmentdialog.aspx

    Hope this will help get started with the required implementation.

    Regards,
    Yana
    Telerik
    TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WPF.
    Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
    Sign up for Free application insights >>
  3. UI for WPF is Visual Studio 2017 Ready
  4. ITA
    ITA avatar
    383 posts
    Member since:
    Aug 2009

    Posted 21 Dec 2013 Link to this post

    Hi Yana,

    i attached a snapshot of the AppointmentDialog. As you can see i have a ResourceType "Art" and i want to handle a
    Event on changing from "Aufgabe" to "Bundesheer".

    Thanks
    Best Regards
    Rene
  5. Yana
    Admin
    Yana avatar
    4554 posts

    Posted 23 Dec 2013 Link to this post

    Hi Rene,

    First, you should create a custom EditAppointmentDialog as explained in the following article:
    http://www.telerik.com/help/wpf/radscheduleview-features-custom-dialogs.html. I would strongly recommend using Implicit Styles to apply a theme to the ScheduleVIew as this allow to make such customizations easier.

    I will explain how the resources are handled in EditAppointmentDIalog, so you can decide what is the best approach to achieve the needed scenario - the resources are implemented in the dialog as an ItemsControl which has a RadComboBox in its ItemTemplate. The ItemsControl is bound to the ResourceTypes while the ComboBoxes to the Resources collection of the concrete ResourceType. You could search for this ItemsControl by its x:Name - "PART_Resources". It has an ItemTemplateSelector as there is a difference in the template for ResourceTypes which has AllowMultipleSelection set to "true". So the regular Template for each ResourceType is the SingleSelectionTemplate of the ResourceTypeTemplateSelector. If you've copied the EditAppointmentDialog template inside the MainWindow, you can subscribe the ComboBox inside the SingleSelectionTemplate to its SelectionChanged event.  Otherwise, you could use a CustomDialogViewModel as in the example I referred in my previous post and handle changing of the SelectedItem in it.

    I hope this helps.

    Regards,
    Yana
    Telerik
    TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WPF.
    Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
    Sign up for Free application insights >>
  6. ITA
    ITA avatar
    383 posts
    Member since:
    Aug 2009

    Posted 30 Dec 2013 Link to this post

    Hi,

    I do not get on with it. The custom AppointmentDialogTemplate ist fine, but how do i display mein resources?

    private IEnumerable<IResource> resourcesStatus;
     
    this.resourcesStatus = new List<IResource>
    {
           new Resource(Klassen.Language.GetTextbyCode("Erfasst"), "Status"),
           new Resource(Klassen.Language.GetTextbyCode("Aktiv"), "Status"),
           new Resource(Klassen.Language.GetTextbyCode("Fertig"), "Status"),
    };
     
    ResourceType resourceTypeStatus = new ResourceType("Status");            resourceTypeStatus.Resources.AddRange(this.resourcesStatus);
     
    this.resourceTypes.Add(resourceTypeStatus);

    This is just one of my resources. Now i want to display this resource in my custom AppointmentDialog!

    Thanks so much
    Best Regards
    Rene
  7. Yana
    Admin
    Yana avatar
    4554 posts

    Posted 03 Jan 2014 Link to this post

    Hi Rene,

    I have attached a sample project with EditAppointmentDialog in order to demonstrate exactly what I meant in my previous post. Note that the DataContext of the dialog is of type AppointmentDialogViewModel and it contains all the information for the currently edited/created appointment as well as the Resources/TimeMarkers/Categories set for the ScheduleView control. You can check all the properties of the AppointmentDialogViewModel in the ShowDialog event handler as shown in the example.  These properties are used for the bindings inside the Dialog.
    So, the ResourceTypes property of the AppointmentDialogViewModel is bound to the ItemsSource of an ItemsControl:
    <ItemsControl x:Name="PART_Resources"
       Margin="3"
       IsTabStop="false"
       BorderBrush="{x:Null}"
       BorderThickness="0"
       HorizontalContentAlignment="Stretch"
       VerticalContentAlignment="Stretch"
       IsEnabled="{Binding IsReadOnly, Converter={StaticResource InvertedBooleanConverter}}"
       ItemsSource="{Binding ResourceTypes}"
       ItemTemplateSelector="{StaticResource ResourcesEditorItemTemplateSelector}"
       Visibility="{Binding ResourceTypesVisibility}"/>

    and for each of the ResourceTypes there is a ComboBox in the ItemTemplate ( set inside the ItemTemplateSelector) which displays the Resources for the concrete ResourceType:
    <local:ResourceTypeTemplateSelector x:Key="ResourcesEditorItemTemplateSelector">
       <local:ResourceTypeTemplateSelector.SingleSelectionTemplate>
          <DataTemplate>
             <Grid>
               <Grid.ColumnDefinitions>
                  <ColumnDefinition MinWidth="100" SharedSizeGroup="LabelsGroup"/>
                  <ColumnDefinition Width="*"/>
                  <ColumnDefinition Width="*"/>
               </Grid.ColumnDefinitions>
               <TextBlock Text="{Binding ResourceType.DisplayName}" Margin="6"/>
               <telerik:RadComboBox
                    Grid.Column="1"
                    Margin="3"
                    ItemsSource="{Binding ResourceItems}"
                    ClearSelectionButtonVisibility="Visible"
                    ClearSelectionButtonContent="{Binding ClearAllButtonContent}"
                    SelectedItem="{Binding SelectedItem, Mode=TwoWay}"
                    DisplayMemberPath="Resource.DisplayName"/>
             </Grid>
         </DataTemplate>
       <local:ResourceTypeTemplateSelector.SingleSelectionTemplate>
    ...

    Actually this ComboBox shows the Resources for the "Status" ResourceType.

    I hope this clears things up.

    Regards,
    Yana
    Telerik
    TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WPF.
    Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
    Sign up for Free application insights >>
  8. ITA
    ITA avatar
    383 posts
    Member since:
    Aug 2009

    Posted 03 Jan 2014 Link to this post

    Hi,

    thanks so much, but one more question. How to add two or three Resources?

    ResourceType resourceTypeStatus = new ResourceType("Status");
    ResourceType resourceTypeStatus = new ResourceType("Mitarbeiter");
    ResourceType resourceTypeStatus = new ResourceType("Art");

    Best Regrads and Happy new Year
    Rene


  9. ITA
    ITA avatar
    383 posts
    Member since:
    Aug 2009

    Posted 05 Jan 2014 Link to this post

    Hi,

    problem solved, thanks a lot! But is it possible to set one of the resources invisible=true. Now i see all my three resources in my
    custom appointment dialog!

    Thanks
    Best regards
    Rene
  10. Yana
    Admin
    Yana avatar
    4554 posts

    Posted 06 Jan 2014 Link to this post

    Hello Rene,

    You could create a custom ResourceType with an additional property which then you can use in EditAppointmentDIalog and bind it to the Visibility property of the ComboBox inside SingleSelectionTemplate, here is some sample code:

    public class CustomResourceType : ResourceType
    {
         public Visibility IsDisplayed { get; set; }
    }

    CustomResourceType resourceTypeStatus = new CustomResourceType() { DisplayName="Status", IsDisplayed = Visibility.Collapsed };

    and here is the binding:

    <telerik:RadComboBox
       ...                
      Visibility="{Binding ResourceType.IsDisplayed}"/>

    I hope this helps.

    Regards,
    Yana
    Telerik
    TRY TELERIK'S NEWEST PRODUCT - EQATEC APPLICATION ANALYTICS for WPF.
    Learn what features your users use (or don't use) in your application. Know your audience. Target it better. Develop wisely.
    Sign up for Free application insights >>
Back to Top
UI for WPF is Visual Studio 2017 Ready