Telerik Forums
UI for WPF Forum
1 answer
133 views

Hi All,

RadBusyIndicator is not working  when Telerik.Windows.DragDrop.DragDropManager.UseAdornerLayer is set to true during InitializeComponent()

<telerik:RadBusyIndicator BusyContent="Finialising you action..." IsBusy="{Binding IsBusy}">

Let me know were it went wrong.I f Possible attach sample solution for the Issue.

Thanks in Advance.

Regards,

Kishore Kumar 

 

Dinko | Tech Support Engineer
Telerik team
 answered on 28 Dec 2020
5 answers
227 views

I found a sample in your SDK "SelectedItemsBinding" part of your ComboBox.

Trying to understand the logic on using the ComboBox. This code seems very what I need but  I would like to use "SelectedItem" not "SelectedItems". So I working on converting your sample code to signal selection. I have managed to adjust the MainWindows.xaml and kind of understand the List collection. But can't convert this to a signal selection. Yes there are other more simple ComboBox samples but this one interests me.

I changed all the references to "SelectedItems" to "SelectedItem" where I get these errors in VS: "Error CS1503 Argument 1: cannot convert from 'object' to 'System.Collections.IList'"

Can you help me make this work?

using System.Collections;
using System.Collections.Specialized;
using System.Windows;
using System.Windows.Interactivity;
using Telerik.Windows.Controls;
 
namespace SelectedItemBinding
{
    public class SelectedItemBehavior : Behavior<RadComboBox>
    {
        private RadComboBox ComboBox
        {
            get
            {
                return this.AssociatedObject as RadComboBox;
            }
        }
 
        public INotifyCollectionChanged SelectedItem
        {
            get { return (INotifyCollectionChanged)this.GetValue(SelectedItemProperty); }
            set { this.SetValue(SelectedItemProperty, value); }
        }
 
        // Using a DependencyProperty as the backing store for SelectedItemProperty.  This enables animation, styling, binding, etc...
        public static readonly DependencyProperty SelectedItemProperty =
            DependencyProperty.Register("SelectedItem", typeof(INotifyCollectionChanged), typeof(SelectedItemBehavior), new PropertyMetadata(OnSelectedItemPropertyChanged));
         
        private static void OnSelectedItemPropertyChanged(DependencyObject target, DependencyPropertyChangedEventArgs args)
        {
            var collection = args.NewValue as INotifyCollectionChanged;
            if (collection != null)
            {
                ((SelectedItemBehavior)target).UpdateTransfer(args.NewValue);
                collection.CollectionChanged += ((SelectedItemBehavior)target).ContextSelectedItem_CollectionChanged;
            }
        }
 
        private void UpdateTransfer(object items)
        {
            Transfer(items as IList, this.ComboBox.SelectedItem);
            this.ComboBox.SelectionChanged += this.ComboSelectionChanged;
        }
 
        private void ContextSelectedItem_CollectionChanged(object sender, NotifyCollectionChangedEventArgs e)
        {
            this.UnsubscribeFromEvents();
            Transfer(SelectedItem as IList, this.ComboBox.SelectedItem);
            this.SubscribeToEvents();
        }
 
        private void ComboSelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
        {
            if (this.ComboBox.ItemsSource != null)
            {
                this.UnsubscribeFromEvents();
                Transfer(this.ComboBox.SelectedItem, SelectedItem as IList);
                this.SubscribeToEvents();
            }
        }
 
        private void SubscribeToEvents()
        {
            this.ComboBox.SelectionChanged += this.ComboSelectionChanged;
            if (this.SelectedItem != null)
            {
                this.SelectedItem.CollectionChanged += this.ContextSelectedItem_CollectionChanged;
            }
        }
 
        private void UnsubscribeFromEvents()
        {
            this.ComboBox.SelectionChanged -= this.ComboSelectionChanged;
            if (this.SelectedItem != null)
            {
                this.SelectedItem.CollectionChanged -= this.ContextSelectedItem_CollectionChanged;
            }
        }
 
        public static void Transfer(IList source, IList target)
        {
            if (source == null || target == null)
                return;
 
            target.Clear();
            foreach (var o in source)
            {
                target.Add(o);
            }
        }
    }
}     
herb
Top achievements
Rank 1
Veteran
Iron
 answered on 25 Dec 2020
13 answers
798 views

Hello.

 

In out project (MVVM, Microsoft prism) we use RadPaneGroup with RadPane. I need understand when user see RadPane. For this i use visibily and isSelected properties:

 

<telerik:RadPaneGroup>
                    <telerik:RadPane Header="{telerik:LocalizableResource Key=Neo_DailyIntroductionPlanFact}"
                                     Name="ActivityDailyIntroductionFactTab" 
                                     telerik:RadDocking.SerializationTag="DailyIntroductionFact"
                                     IsSelected="{Binding ActivityFactDataTabIsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                                     CanUserClose="False" 
                                     IsPinned="False" 
                                     Visibility="{Binding ActivityFactDataTabVisibility, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}">

                       
                            <ContentControl HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" 
                                            regions:RegionManager.RegionName="{x:Static helpers:LocalRegionsNames.ActivityDailyIntroductionFactRegion}" />
                        </telerik:RadBusyIndicator>
                    </telerik:RadPane>
                </telerik:RadPaneGroup>

 

When user view is closing, property IsSelected becomes equal 'true', even if it was equal before 'false'...why this happen?

Teleric 2018.1.116.45

Dinko | Tech Support Engineer
Telerik team
 answered on 25 Dec 2020
1 answer
394 views

Hi good afternoon:

I want to create something similar to winmerge for compare commited files using telerik. I need this control to be embedded in my app, for this reason I could not use JustAsembly. Does telerik have some control that I can use to get something like this?

 

Kind Regards,

Joaquín Stevenazzi

Martin Ivanov
Telerik team
 answered on 23 Dec 2020
3 answers
378 views
Do you support Comparing 2 documents like Winmerge?
-highlights the added, deleted, modified part of the document.

if not built-in, can you give us any idea how to support this using your product?
Martin
Telerik team
 answered on 21 Dec 2020
1 answer
180 views
Hi All,
Any Idea to manually call theses methods CanStartDrag, CanDrop, Drop, DragDropCompleted, DragDropCanceled of DragDropBehavior from events of Rad ListBox Control for drag drop operation. Can you provide any sample project for demonstration?.

Thanks in Advance
Kalin
Telerik team
 answered on 21 Dec 2020
0 answers
275 views

I am having a problem getting my Telerik RadWindow to add modules to my module catalog. To get the RadWindow to load I had to override the Prism CreateShell method to return null.

protected override Window CreateShell() { //We must return null to override Window type.//return Container.Resolve<ShellWindow>();return null; }

I then handle all the initialization in the OnInitialized method.

protected override void OnInitialized() { ShellWindow2 shellWindow = Container.Resolve<ShellWindow2>(); shellWindow.Show(); MainWindow = shellWindow.ParentOfType<Window>(); RegionManager.SetRegionManager(MainWindow, Container.Resolve<IRegionManager>()); RegionManager.UpdateRegions(); InitializeModules(); base.OnInitialized(); }
My problem is when I try to add modules to my Module Catalog I get an error : The region manager does not contain the MyRegion region.
protected override void ConfigureModuleCatalog(IModuleCatalog moduleCatalog) { moduleCatalog.AddModule<SecurityModule>(); }

I think the problem is the module is trying to map to a region before the RegionManager is initialized in the OnInitialized method.

How can get the AddModule method to initialize after the RegionManager is set up?


Rob Vest
Top achievements
Rank 1
 asked on 19 Dec 2020
4 answers
761 views

Hi,

 

1) I need to place the HorizontalAxis Label above the chart. Is that possible?

2) I am trying to change the alignment of both Axis's titles: the HorizontalAxis Title to "left" and the VerticalAxis Title to "bottom" (near Chart's origin). How can I do that?

 

Could you show me a code example?

 

Thank you.

Martin Ivanov
Telerik team
 answered on 17 Dec 2020
1 answer
115 views

Hi,

I'm working with ChartView3D and Telerik UI for a project. I am using the XAML tags for the graph. I can build and compile the graph. During runtime, when I change the view angles of the graph and rotate, zoom it frequently the axes gets updated with the graph by a small delay. Sometime the axes get stuck. I have attached the screenshot for reference.

The code below is used to create the 3D graph,

 

<telerik:RadCartesianChart3D x:Name="E3DChart" Visibility="Collapsed">
                                            <telerik:RadCartesianChart3D.XAxis>
                                                <telerik:CategoricalAxis3D Title="Position">
                                                    <telerik:CategoricalAxis3D.TitleTemplate>
                                                        <DataTemplate>
                                                            <TextBlock Text="{Binding}" Foreground="White" Padding="3" FontSize="20" />
                                                        </DataTemplate>
                                                    </telerik:CategoricalAxis3D.TitleTemplate>
                                                    <telerik:CategoricalAxis3D.LabelStyle>
                                                        <Style TargetType="TextBlock">
                                                            <Setter Property="Foreground" Value="#FFD4D4D4" />
                                                        </Style>
                                                    </telerik:CategoricalAxis3D.LabelStyle>
                                                </telerik:CategoricalAxis3D>
                                            </telerik:RadCartesianChart3D.XAxis>
                                            <telerik:RadCartesianChart3D.YAxis>
                                                <telerik:CategoricalAxis3D Title="Tube">
                                                    <telerik:CategoricalAxis3D.TitleTemplate>
                                                        <DataTemplate>
                                                            <TextBlock Text="{Binding}" Foreground="White" Padding="3" FontSize="20"/>
                                                        </DataTemplate>
                                                    </telerik:CategoricalAxis3D.TitleTemplate>
                                                    <telerik:CategoricalAxis3D.LabelStyle>
                                                        <Style TargetType="TextBlock">
                                                            <Setter Property="Foreground" Value="#FFD4D4D4" />
                                                        </Style>
                                                    </telerik:CategoricalAxis3D.LabelStyle>
                                                </telerik:CategoricalAxis3D>
                                            </telerik:RadCartesianChart3D.YAxis>
                                            <telerik:RadCartesianChart3D.ZAxis>
                                                <telerik:LinearAxis3D Title="Count">
                                                    <telerik:LinearAxis3D.TitleTemplate>
                                                        <DataTemplate>
                                                            <TextBlock Text="{Binding}" Foreground="White" Padding="3" FontSize="20"/>
                                                        </DataTemplate>
                                                    </telerik:LinearAxis3D.TitleTemplate>
                                                    <telerik:LinearAxis3D.LabelStyle>
                                                        <Style TargetType="TextBlock">
                                                            <Setter Property="Foreground" Value="#FFD4D4D4" />
                                                        </Style>
                                                    </telerik:LinearAxis3D.LabelStyle>
                                                </telerik:LinearAxis3D>
                                            </telerik:RadCartesianChart3D.ZAxis>
                                            <telerik:RadCartesianChart3D.Behaviors>
                                                <telerik:Chart3DCameraBehavior Distance="2500"
                                               FirstAngle="225"
                                               SecondAngle="85"/>
                                                <telerik:Chart3DTooltipBehavior ShowDuration="10000"/>
                                            </telerik:RadCartesianChart3D.Behaviors>
                                            <telerik:RadCartesianChart3D.Grid>
                                                <telerik:CartesianChart3DGrid GridLineThickness="3"/>
                                            </telerik:RadCartesianChart3D.Grid>
                                        </telerik:RadCartesianChart3D>

Martin Ivanov
Telerik team
 answered on 17 Dec 2020
3 answers
186 views

Hi,

I have a list of workers, whom all needs to have an amount paid by way of their hours times a value.

I have a WorkerModel class:

public class WorkerModel
{
    public string Name { get; set; }
 
    public int HoursWorking { get; set; }
}

Then I have a CompanyModel that contains the workers:

public class CompanyModel
{
    private ObservableCollection<WorkerModel> _workers = new ObservableCollection<WorkerModel>();
 
    public ObservableCollection<WorkerModel> Workers
    {
        get { return _workers ; }
        set { _workers = value; }
    }
}

And then I have a ViewModel that allows me to bind to the view:

public class MainViewModel : ViewModelBase
{
    private readonly CompanyModel _company;
 
    public MainViewModel()
    {
        _company= new CompanyModel();
             
    }
 
    public ObservableCollection<CompanyModel > Workers
    {
        get { return _company.Workers; }
    }
 
    public decimal PayoutPerHour
    {
        get { return 71M; }
    }
 
 
}

Lastly my view looks like this:

 

<telerik:RadGridView ShowGroupPanel="False"
                             HorizontalAlignment="Left"
                             telerik:StyleManager.Theme="Summer"
                             AutoGenerateColumns="False"
                             GroupRenderMode="Flat"
                             NewRowPosition="Bottom"
                             ItemsSource="{Binding Workers}"
                             Grid.Column="0">
            <telerik:RadGridView.Columns>
                <telerik:GridViewDataColumn Header="Name" DataMemberBinding="{Binding Path=Name}" Width="230"></telerik:GridViewDataColumn>
                <telerik:GridViewExpressionColumn Header="Payout" Width="100" Expression="HoursWorking * PayoutPerHour"></telerik:GridViewExpressionColumn></telerik:GridViewDataColumn>
            </telerik:RadGridView.Columns>
        </telerik:RadGridView>

 

My goal is to have the HoursWorking from the WorkerModel, multiply with the PayoutPerHour thats in the ViewModel. I have in this example made the PayoutPerHour a static value, which it is not in my full example. I need the Expressioncolumn to update whenever either of those two properties are updated. But I can't tell the viewmodel what the WorkerModel is doing, since they are in a collection in the CompanyModel.

Any clever way to do this?

Martin Ivanov
Telerik team
 answered on 16 Dec 2020
Narrow your results
Selected tags
Tags
GridView
General Discussions
Chart
RichTextBox
Docking
ScheduleView
ChartView
TreeView
Diagram
Map
ComboBox
TreeListView
Window
RibbonView and RibbonWindow
PropertyGrid
DragAndDrop
TabControl
TileView
Carousel
DataForm
PDFViewer
MaskedInput (Numeric, DateTime, Text, Currency)
AutoCompleteBox
DatePicker
Buttons
ListBox
GanttView
PivotGrid
Spreadsheet
Gauges
NumericUpDown
PanelBar
DateTimePicker
DataFilter
Menu
ContextMenu
TimeLine
Calendar
Installer and Visual Studio Extensions
ImageEditor
BusyIndicator
Expander
Slider
TileList
PersistenceFramework
DataPager
Styling
TimeBar
OutlookBar
TransitionControl
FileDialogs
Book
ToolBar
ColorPicker
TimePicker
MultiColumnComboBox
SyntaxEditor
VirtualGrid
Wizard
ExpressionEditor
NavigationView (Hamburger Menu)
WatermarkTextBox
DesktopAlert
BarCode
SpellChecker
DataServiceDataSource
EntityFrameworkDataSource
RadialMenu
ChartView3D
Data Virtualization
BreadCrumb
LayoutControl
ProgressBar
Sparkline
TabbedWindow
ToolTip
CloudUpload
ColorEditor
TreeMap and PivotMap
EntityFrameworkCoreDataSource (.Net Core)
HeatMap
Chat (Conversational UI)
VirtualizingWrapPanel
Calculator
NotifyIcon
TaskBoard
TimeSpanPicker
BulletGraph
Licensing
WebCam
CardView
DataBar
FilePathPicker
PasswordBox
SplashScreen
Callout
Rating
Accessibility
CollectionNavigator
Localization
AutoSuggestBox
Security
VirtualKeyboard
HighlightTextBlock
TouchManager
StepProgressBar
Badge
OfficeNavigationBar
ExpressionParser
CircularProgressBar
SvgImage
PipsPager
SlideView
AI Coding Assistant
+? more
Top users last month
Cynthia
Top achievements
Rank 1
Iron
Toby
Top achievements
Rank 3
Iron
Iron
Iron
Danielle
Top achievements
Rank 1
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Iron
yw
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Cynthia
Top achievements
Rank 1
Iron
Toby
Top achievements
Rank 3
Iron
Iron
Iron
Danielle
Top achievements
Rank 1
Iron
Iron
Joel
Top achievements
Rank 3
Bronze
Bronze
Iron
yw
Top achievements
Rank 2
Iron
Iron
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?