Telerik Forums
UI for WPF Forum
1 answer
245 views
Using the DockingCustomPropertyProvider I save the docking settings.  When I try to load them back up, (after I have unpinned a panel) I get the following error:  The given key was not present in the dictionary. 


using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Telerik.Windows.Controls;
using Telerik.Windows.Persistence.Services;
 
namespace BasicDockingPersistenceExample
{
    public class DockingCustomPropertyProvider : ICustomPropertyProvider
    {
        public CustomPropertyInfo[] GetCustomProperties()
        {
            // Create two custom properties to serialize the Layout of the RadDocking and the Content of the RadPanes
            return new CustomPropertyInfo[]
                       {
                           new CustomPropertyInfo("Layout", typeof (string)),
                           new CustomPropertyInfo("Content", typeof (List<PaneProxy>)) {AllowCreateInstance = false, TreatAsUI = false},
                       };
        }
 
        public void InitializeObject(object context)
        {
        }
 
        public object InitializeValue(CustomPropertyInfo customPropertyInfo, object context)
        {
            if (customPropertyInfo.Name == "Content")
            {
                // See remarks in ProvideValue method:
                // provide the values on which the saved properties will be restored upon
                RadDocking docking = context as RadDocking;
                List<PaneProxy> proxies = new List<PaneProxy>();
                foreach (RadPane pane in this.GetOrderedPanes(docking).ToArray())
                {
                    proxies.Add(new PaneProxy() { Content = pane.Content });
                }
                return proxies;
            }
            return null;
        }
 
        public object ProvideValue(CustomPropertyInfo customPropertyInfo, object context)
        {
            RadDocking docking = context as RadDocking;
            if (customPropertyInfo.Name == "Layout")
            {
                // let the RadDocking save the layout of the Panes:
                return this.SaveLayoutAsString(docking);
            }
            else if (customPropertyInfo.Name == "Content")
            {
                // create proxies for all of the Panes and save their content
                IEnumerable<RadPane> panes = this.GetOrderedPanes(docking);
                List<PaneProxy> proxies = new List<PaneProxy>();
                foreach (RadPane pane in panes)
                {
                    proxies.Add(new PaneProxy() { Content = pane.Content });
                }
                return proxies;
            }
            return null;
        }
 
        public void RestoreValue(CustomPropertyInfo customPropertyInfo, object context, object value)
        {
            if (customPropertyInfo.Name == "Layout")
            {
                // let the RadDocking load the layout of the RadPanes
                this.LoadLayoutFromString(value.ToString(), context as RadDocking);
            }
            else if (customPropertyInfo.Name == "Content")
            {
                // the PersistenceManager does not re-create UI elements - in this case the Content of the RadPane.
                // So, instead of providing a value on which the saved properties will be applied,
                // we will use the InitializeValue method.
            }
        }
 
        private string SaveLayoutAsString(RadDocking instance)
        {
            MemoryStream stream = new MemoryStream();
            instance.SaveLayout(stream);
 
            stream.Seek(0, SeekOrigin.Begin);
 
            StreamReader reader = new StreamReader(stream);
            return reader.ReadToEnd();
        }
 
        private void LoadLayoutFromString(string xml, RadDocking instance)
        {
            using (Stream stream = new MemoryStream(Encoding.UTF8.GetBytes(xml)))
            {
                stream.Seek(0, SeekOrigin.Begin);
                instance.LoadLayout(stream);
            }
        }
 
        private IEnumerable<RadPane> GetOrderedPanes(RadDocking docking)
        {
            // get the RadPanes always in the same order:
            RadPane[] array = docking.Panes.ToArray();
            Array.Sort(array, new RadPaneComparer());
            return array;
        }
    }
 
    public class RadPaneComparer : IComparer<RadPane>
    {
        int IComparer<RadPane>.Compare(RadPane x, RadPane y)
        {
            // compare RadPanes by their serialization tag:
            string xSerializationTag = RadDocking.GetSerializationTag(x);
            string ySerializationTag = RadDocking.GetSerializationTag(y);
 
            return xSerializationTag.CompareTo(ySerializationTag);
        }
    }
 
    public class PaneProxy
    {
        public object Content { get; set; }
    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
 
namespace BasicDockingPersistenceExample
{
    public class MainWindowViewModel : INotifyPropertyChanged
    {
        public MainWindowViewModel()
        {
             
        }
 
        #region DockPanel pinning properties
 
        private bool? _pane2PanelIsPinned = false;
 
        public bool? Pane2PanelIsPinned
        {
            get { return _pane2PanelIsPinned; }
            set
            {
                _pane2PanelIsPinned = value;
                FirePropertyChanged("Pane2PanelIsPinned");
            }
        }
 
        private bool? _pane1PanelIsPinned = false;
 
        public bool? Pane1PanelIsPinned
        {
            get { return _pane1PanelIsPinned; }
            set
            {
                _pane1PanelIsPinned = value;
                FirePropertyChanged("Pane1PanelIsPinned");
            }
        }
 
        private bool? _pane5PanelIsPinned = false;
 
        public bool? Pane5PanelIsPinned
        {
            get { return _pane5PanelIsPinned; }
            set
            {
                _pane5PanelIsPinned = value;
                FirePropertyChanged("Pane5PanelIsPinned");
            }
        }
 
        private bool? _pane3PanelIsPinned = true;
 
        public bool? Pane3PanelIsPinned
        {
            get { return _pane3PanelIsPinned; }
            set
            {
                _pane3PanelIsPinned = value;
                FirePropertyChanged("Pane3PanelIsPinned");
            }
        }
 
        private bool? _pane4PanelIsPinned = true;
 
        public bool? Pane4PanelIsPinned
        {
            get { return _pane4PanelIsPinned; }
            set
            {
                _pane4PanelIsPinned = value;
                FirePropertyChanged("Pane4PanelIsPinned");
            }
        }
 
        #endregion
 
 
        public event PropertyChangedEventHandler PropertyChanged;
 
        protected void FirePropertyChanged(string property)
        {
            //Should only be called by ViewModel base class.  Derived classes should use lambda/LINQ syntax to simplify refactoring
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(property));
        }
 
    }
}

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Telerik.Windows.Controls;
using Telerik.Windows.Persistence.Services;
using Telerik.Windows.Persistence.Storage;
 
namespace BasicDockingPersistenceExample
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
 
            ServiceProvider.RegisterPersistenceProvider<ICustomPropertyProvider>(typeof(RadDocking), new DockingCustomPropertyProvider());
 
            this.DataContext = new MainWindowViewModel();
 
            InitializeComponent();
            Dispatcher.ShutdownStarted += new EventHandler(DispatcherShutdownStarted);
 
 
        }
 
        private void DispatcherShutdownStarted(object sender, EventArgs e)
        {
            Dispatcher.ShutdownStarted -= new EventHandler(DispatcherShutdownStarted);
            SaveLayout();
        }
 
 
        private void SaveLayout()
        {
            var storage = new IsolatedStorageProvider();
            storage.SaveToStorage();
 
        }
 
        private void LoadLayout()
        {
            var storage = new IsolatedStorageProvider();
            storage.LoadFromStorage();
        }
 
        private void BuildDockingLoaded(object sender, RoutedEventArgs e)
        {
            LoadLayout();
        }
 
 
    }
}

<Window x:Class="BasicDockingPersistenceExample.MainWindow"
                xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
                Title="MainWindow" Height="588" Width="876">
    <telerik:RadDocking x:Name="BuildDocking" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"
                        Padding="2"  HasDocumentHost="False"
                        Loaded="BuildDockingLoaded"
                        telerik:PersistenceManager.StorageId="BuildDocking">
        <telerik:RadSplitContainer Orientation="Horizontal" InitialPosition="DockedBottom">
            <telerik:RadPaneGroup >
                <telerik:RadPane x:Name="Pane1Panel" Header="Pane 1"
                                 telerik:RadDocking.SerializationTag="Pane1Panel"
                                 IsPinned="{Binding Path=Pane1PanelIsPinned, Mode=TwoWay}" CanUserClose="False" CanDockInDocumentHost="False">
 
                </telerik:RadPane>
            </telerik:RadPaneGroup>
        </telerik:RadSplitContainer>
        <telerik:RadSplitContainer Orientation="Horizontal" InitialPosition="DockedLeft" >
            <telerik:RadPaneGroup  telerik:ProportionalStackPanel.RelativeSize="200, 300">
                <telerik:RadPane x:Name="Pane2Panel" Header="Pane 2"
                                 telerik:RadDocking.SerializationTag="Pane2Panel"
                                 IsPinned="{Binding Path=Pane2PanelIsPinned, Mode=TwoWay}" CanUserClose="False" CanDockInDocumentHost="False">
                </telerik:RadPane>
            </telerik:RadPaneGroup>
        </telerik:RadSplitContainer>
        <telerik:RadSplitContainer Orientation="Horizontal" InitialPosition="DockedRight" MinWidth="300">
            <telerik:RadPaneGroup >
                <telerik:RadPane Header="Pane 3" x:Name="Pane3Panel"
                                 telerik:RadDocking.SerializationTag="Pane3Panel"
                                 IsPinned="{Binding Path=Pane3PanelIsPinned, Mode=TwoWay}" CanUserClose="False" CanDockInDocumentHost="False" >
 
                </telerik:RadPane>
            </telerik:RadPaneGroup>
        </telerik:RadSplitContainer>
        <telerik:RadSplitContainer Orientation="Vertical" InitialPosition="DockedTop"  MinHeight="100" >
            <telerik:RadPaneGroup >
                <telerik:RadPane Header="Pane 4" x:Name="Pane4Panel" 
                                 telerik:RadDocking.SerializationTag="Pane4Panel"
                                 IsPinned="{Binding Path=Pane4PanelIsPinned, Mode=TwoWay}"  CanUserClose="False" CanDockInDocumentHost="False" >
                </telerik:RadPane>
            </telerik:RadPaneGroup>
        </telerik:RadSplitContainer>
        <telerik:RadSplitContainer Orientation="Vertical" InitialPosition="DockedTop"  MinHeight="100" >
            <telerik:RadPaneGroup >
                <telerik:RadPane Header="Pane 5" x:Name="Pane5Panel"
                                 telerik:RadDocking.SerializationTag="Pane5Panel"
                                 IsPinned="{Binding Path=Pane5PanelIsPinned, Mode=TwoWay}" CanUserClose="False" CanDockInDocumentHost="False" >
                </telerik:RadPane>
            </telerik:RadPaneGroup>
        </telerik:RadSplitContainer>
 
    </telerik:RadDocking>
 
</Window>
Trish
Top achievements
Rank 1
 answered on 20 Dec 2011
1 answer
139 views
Hi,
I have a single data context and within my edmx model I have 2 tables.

Table 1 (Parent Table) (Loads grdSAPBatches)
AUFNR    Primary key
BATCH_Type
ENGINE_TYPE
START_DATE
START_TIME
PROGRAMMED_QTY

Table 2 (Child Table) (Loads grdSAPComponents)

 

AUFNR    FK1
TAG_POSITION FK2
COMPONENT
MESSAGE

I have a Grid and I have set as follows following the sample to show Table 1 data and on expand of row I would want to see filtered table 2 data with the relationship being AUFNR - but the child table seems to be ignoring the relationship I specified in xaml and just loading all the table 2 data?

I have changed self reference to False and True and it makes no difference....

The VB I am using to load the data is as follows

 

Dim vwSAPBatchesViewSource As System.Windows.Data.CollectionViewSource = CType(Me.FindResource("TblSAP_BatchesViewSource"), System.Windows.Data.CollectionViewSource)

vwSAPBatchesViewSource.Source = context.fnGetSapBatches

Child Table

Dim vwSAPComponentsViewSource As System.Windows.Data.CollectionViewSource = CType(Me.FindResource("TblSAP_ComponentsViewSource"), System.Windows.Data.CollectionViewSource)

vwSAPComponentsViewSource.Source = context.fnGetSapComponents

The bold items are the imports in edmx to SP's in sql server - neither fn's take parameters as I assumed the grid would filter the child data automatically once the relationship was set?

 

<Grid Margin="3" Grid.Column="1" Name="GridSAP">
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>
    <TextBlock x:Name="textBlock_Copy" TextWrapping="Wrap" Text="SAP Staging Table" FontFamily="Segoe UI" FontSize="13.333" VerticalAlignment="Center" FontStyle="Italic" Foreground="#FF969696" HorizontalAlignment="Center"/>
    <StackPanel x:Name="stkStaging" Orientation="Horizontal" Grid.Row="2" HorizontalAlignment="Right" VerticalAlignment="Top"/>
    <telerik:RadGridView  ItemsSource="{Binding}" AutoGenerateColumns="False" x:Name="grdSAPBatches" DataContext="{StaticResource TblSAP_BatchesViewSource}" IsReadOnly="True" ShowGroupPanel="False" AlternateRowBackground="{x:Null}" Background="{x:Null}" ColumnBackground="#FF1E1E1E" Foreground="White" HorizontalGridLinesBrush="#FF323232" VerticalGridLinesBrush="#FF323232" RowIndicatorVisibility="Collapsed" BorderBrush="#FF0E0E0E" IsFilteringAllowed="False" CanUserFreezeColumns="False" ScrollViewer.CanContentScroll="True" VerticalAlignment="Top" d:LayoutOverrides="Width" Grid.Row="1" DataLoadMode="Asynchronous" HorizontalAlignment="Right" Style="{DynamicResource RadGridViewStyle_EPMS}"  GroupRowStyle="{DynamicResource GridViewGroupRowStyle_EPMS}" GroupPanelBackground="#FF0E0E0E">
        <telerik:RadGridView.ChildTableDefinitions>
            <telerik:GridViewTableDefinition>
                <telerik:GridViewTableDefinition.Relation>
                    <telerik:TableRelation IsSelfReference="False">
                        <telerik:TableRelation.FieldNames>
                            <telerik:FieldDescriptorNamePair ParentFieldDescriptorName="AUFNR" ChildFieldDescriptorName="AUFNR"/>
                        </telerik:TableRelation.FieldNames>
                    </telerik:TableRelation>
                </telerik:GridViewTableDefinition.Relation>
            </telerik:GridViewTableDefinition>
        </telerik:RadGridView.ChildTableDefinitions>
        <telerik:RadGridView.Columns>
            <telerik:GridViewDataColumn UniqueName="AUFNR" DataMemberBinding="{Binding AUFNR}" Header="Batch No." IsGroupable="False" IsFilterable="False"/>
            <telerik:GridViewDataColumn UniqueName="BATCH_TYPE" DataMemberBinding="{Binding BATCH_TYPE}" Header="Batch Type" IsGroupable="False" IsFilterable="False"/>
            <telerik:GridViewDataColumn UniqueName="ENGINE_TYPE" DataMemberBinding="{Binding ENGINE_TYPE}" Header="Part No." IsGroupable="False" IsFilterable="False"/>
            <telerik:GridViewDataColumn UniqueName="START_DATE" DataMemberBinding="{Binding START_DATE}" Header="Sched. Date" IsGroupable="False" IsFilterable="False"/>
            <telerik:GridViewDataColumn UniqueName="START_TIME" DataMemberBinding="{Binding START_TIME}" Header="Sched. Time" IsGroupable="False" IsFilterable="False"/>
            <telerik:GridViewDataColumn UniqueName="PROGRAMMED_QTY" DataMemberBinding="{Binding PROGRAMMED_QTY}" Header="Batch Qty" IsGroupable="False" IsFilterable="False"/>
        </telerik:RadGridView.Columns>
        <telerik:RadGridView.HierarchyChildTemplate>
            <DataTemplate>
                <telerik:RadGridView DataContext="{StaticResource TblSAP_ComponentsViewSource}" AutoGenerateColumns="False"  x:Name="grdSAPComponents" ItemsSource="{Binding}" ShowGroupPanel="False" AlternateRowBackground="{x:Null}" Background="{x:Null}" ColumnBackground="#FF1E1E1E" Foreground="White" HorizontalGridLinesBrush="#FF323232" VerticalGridLinesBrush="#FF323232" RowIndicatorVisibility="Collapsed" BorderBrush="#FF0E0E0E" IsFilteringAllowed="True" CanUserFreezeColumns="False" ScrollViewer.CanContentScroll="True" VerticalAlignment="Top" d:LayoutOverrides="Width" Grid.Row="1" DataLoadMode="Asynchronous" HorizontalAlignment="Right" Style="{DynamicResource RadGridViewStyle_EPMS}">
                    <telerik:RadGridView.Columns>
                        <telerik:GridViewDataColumn UniqueName="AUFNR" DataMemberBinding="{Binding AUFNR}" Header="Batch No." IsGroupable="True" IsFilterable="True"/>
                        <telerik:GridViewDataColumn UniqueName="TAG_POSITION" DataMemberBinding="{Binding TAG_POSITION}" Header="Tag Position" IsGroupable="True" IsFilterable="True"/>
                        <telerik:GridViewDataColumn UniqueName="COMPONENT" DataMemberBinding="{Binding COMPONENT}" Header="Component" IsGroupable="True" IsFilterable="True"/>
                        <telerik:GridViewDataColumn UniqueName="HMI_MESSAGE" DataMemberBinding="{Binding HMI_MESSAGE}" Header="HMI Message" IsGroupable="True" IsFilterable="True"/>
                    </telerik:RadGridView.Columns>
                </telerik:RadGridView>
            </DataTemplate>
        </telerik:RadGridView.HierarchyChildTemplate>
          
    </telerik:RadGridView>
</Grid>


Any help much appreciated...

Andrew
Top achievements
Rank 1
 answered on 20 Dec 2011
1 answer
110 views
Hello,

I am attempting to theme two different RadDocking controls, within the same solution, each with its own custom theme. I have followed the instructions/example mentioned here and have been able to get the first theme applied. Is it possible to create a second theme to be applied to another RadDocking control?

I would also like to apply each theme in XAML, as demonstrated here in the RadDockingTheming Overview.

Thanks,
Frankie

Dani
Telerik team
 answered on 20 Dec 2011
1 answer
75 views
Hi,

I am working on a RadGridView with a Column Filter. For some columns it's a Combo Box with list of values and their description.
I would like to display the description into the Column Filter, instead of their underlying value, which is not very meaningful for the users.

How can we achieve this?

Thanks
Ric Yik
Dimitrina
Telerik team
 answered on 20 Dec 2011
1 answer
109 views
In an XBap application when a RadWindow is shown in the Application.StartUp event when there is no StartUri defined the RadWindow generates the exception listed. When the call to the RadWindow is removed or the StartUri is defined then the error goes away.

Version: 2011.3.1116.40 also tested with the latest internal build as of today.

<telerik:RadWindow x:Class="WpfBrowserApplication1.TestWindow"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:telerik="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Navigation" Header="TestWindow" Height="300" Width="300">
    <Grid Background="LightBlue">
        <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">
            Test
        </TextBlock>
    </Grid>
</telerik:RadWindow>

<Application x:Class="WpfBrowserApplication1.App"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             Startup="Application_Startup" DispatcherUnhandledException="Application_DispatcherUnhandledException">
    <!-- StartupUri="Page1.xaml" -->
    <Application.Resources>
 
    </Application.Resources>
</Application>

using System.Windows;
 
namespace WpfBrowserApplication1
{
  using System;
 
  /// <summary>
  /// Interaction logic for App.xaml
  /// </summary>
  public partial class App : Application
  {
    public App()
    {
      AppDomain.CurrentDomain.UnhandledException += (s, a) => HandleError((Exception)a.ExceptionObject);
    }
 
    private object HandleError(Exception exception)
    {
      throw new NotImplementedException();
    }
 
    private void Application_Startup(object sender, StartupEventArgs e)
    {
      TestWindow newWindow = new TestWindow();
      newWindow.ShowDialog();
    }
 
    private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
    {
      Console.WriteLine();
    }
  }
}


Value cannot be null. Parameter name: adornedElement
   at System.Windows.Documents.Adorner..ctor(UIElement adornedElement)
   at Telerik.Windows.Controls.InternalWindow.AdornerPopup.WindowPopupAdorner..ctor(UIElement adornedElement, Panel contentPanel)
   at Telerik.Windows.Controls.InternalWindow.AdornerPopup.InitializeAdorner()
   at Telerik.Windows.Controls.InternalWindow.AdornerPopup.OnRootVisualLoaded(Object sender, RoutedEventArgs e)
   at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
   at System.Windows.RouteItem.InvokeHandler(RoutedEventArgs routedEventArgs)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.EventRoute.InvokeHandlers(Object source, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
   at System.Windows.FrameworkElement.OnLoaded(RoutedEventArgs args)
   at MS.Internal.FrameworkObject.OnLoaded(RoutedEventArgs args)
   at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
   at System.Windows.BroadcastEventHelper.BroadcastLoadedSynchronously(DependencyObject rootDO, Boolean isLoaded)
   at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root)
   at MS.Internal.LoadedOrUnloadedOperation.DoWork()
   at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
   at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
   at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
   at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
   at System.Windows.Media.MediaContext.Resize(ICompositionTarget resizedCompositionTarget)
   at System.Windows.Interop.HwndTarget.OnResize()
   at System.Windows.Interop.HwndTarget.HandleMessage(WindowMessage msg, IntPtr wparam, IntPtr lparam)
   at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
Miroslav Nedyalkov
Telerik team
 answered on 20 Dec 2011
1 answer
83 views
Hi
How to pin a column to right or left?
(Doesn't scroll left or right with scroll bar)

Thanks
Maya
Telerik team
 answered on 20 Dec 2011
0 answers
82 views
Hello to all
I have a application in windows c#.. I am having a wpf page in which i am using date picker(wpf control) and radgridview(telerik)..

when i make exe and runs on client's application and when i open that page  i am getting error
Plz see the attached file


Jack
Top achievements
Rank 1
 asked on 20 Dec 2011
2 answers
208 views
In my RadPane I have a Listbox that is part of a UserControl in the Content section that I need to bind to a ComboBox in the TitleTemplate section; is this possible? A co-worker suggested searching the visual tree but I'm hoping there's a better way. The code currently falls down on the ItemsSource binding in the UserControl. A XAML solution is preferred but code-behind is fine if that is what is required.

TitleTemplate:
<DataTemplate x:Key="TitleTemplate">
  <Grid>
    <Grid.ColumnDefinitions>
      <ColumnDefinition Width="Auto"/>
      <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <ContentPresenter Content="{Binding}"/>
    <StackPanel Orientation="Horizontal" Grid.Column="1">
      <ComboBox x:Name="Top" ItemsSource="{Binding Source={x:Static TopLevelElements}}"/>
      <ComboBox x:Name="Middle" ItemsSource="{Binding ElementName=Top, Path=SelectedItem.MiddleLevelElements}"/>
    </StackPanel>
  </Grid>
</DataTemplate>

UserControl:
<!--xmlns declarations in example omitted for brevity-->
<UserControl x:Class="BottomItemView">
  <Border>
    <ListBox x:Name="Bottom" ItemsSource="{Binding ElementName=Middle, Path=SelectedItem.BottomLevelElements}"/>
  </Border>
</UserControl>

Code for customized RadPane:
Public Class CustomRadPane
  Inherits RadPane
  
  Public Sub New(ByVal title As Object)
    MyBase.New()
    Me.Title = title
    Me.TitleTemplate = TryCast(FindResource("TitleTemplate"), DataTemplate)
    Me.Content = System.Activator.CreateInstance(BottomItemView)
  End Sub
End Class
Jason
Top achievements
Rank 1
 answered on 19 Dec 2011
1 answer
103 views
We are examining your ScheduleView control for a while. We are trying to adapt a special calendar named "Merch Calendar" to your ScheduleView. We think that ScheduleView is a good choice for us. In this adaption we need to customize your Rad ScheduleViewDefinitions section to fulfil our needs. If you look at the upper section of our attached screenshot you will see like  201151 201201 values. Their meanings are: 2011-2012 year information and 51-52 are week information. Additionally, size of the bars which corresponds to appointments should be resized by the users and we need to get these changing date values. In this context, how can we customize the ScheduleViewDefinition section.Will these modifications fulfil our needs or are there any other possible ways.
Thanks, best regards.
Rosi
Telerik team
 answered on 19 Dec 2011
3 answers
393 views
Hello,

I am trying to add a drop shadow to the Tab Control DropDownMenu. Currently, I am applying the drop shadow effect to the outermost border within "Telerik_Windows_Controls_TabControl:DropDownMenu" Control Template. The only way I have been able to make the effect visible is by increasing the margins around the containing grid. The problem with this is the margins now push the border/dropdownmenu away from the DropDownMenuButton, so it appears to be floating on its own. Applying a RenderTransform to compensate for the shift only cuts off the drop shadow effect. I have attached an image demonstrating this behavior.

<ControlTemplate TargetType="{x:Type Telerik_Windows_Controls_TabControl:DropDownMenu}">
    <Grid x:Name="PopupContentElement"
          Margin="40,0,40,80"
          RenderTransformOrigin="0,0">
        <Grid.RenderTransform>
            <TranslateTransform X="-40" />
        </Grid.RenderTransform>
        <Border BorderBrush="#FF848484"
                BorderThickness="{TemplateBinding BorderThickness}"
                Background="White">
            <Border.Effect>
                <DropShadowEffect BlurRadius="40"
                                  Color="Black"
                                  Direction="0"
                                  Opacity="0.85"
                                  RenderingBias="Quality"
                                  ShadowDepth="0" />
            </Border.Effect>

Any suggestions how to achieve the drop shadow effect without destroying the layout?

Thanks,
Frankie
Kiril Stanoev
Telerik team
 answered on 19 Dec 2011
Narrow your results
Selected tags
Tags
+? more
Top users last month
Anislav
Top achievements
Rank 6
Silver
Bronze
Bronze
Jianxian
Top achievements
Rank 1
Iron
Marco
Top achievements
Rank 3
Iron
Iron
Iron
Jim
Top achievements
Rank 2
Iron
Iron
Nurik
Top achievements
Rank 2
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Anislav
Top achievements
Rank 6
Silver
Bronze
Bronze
Jianxian
Top achievements
Rank 1
Iron
Marco
Top achievements
Rank 3
Iron
Iron
Iron
Jim
Top achievements
Rank 2
Iron
Iron
Nurik
Top achievements
Rank 2
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?