Hello
I've attached an example, and the ContentTemplateSelector will cause a designer exception.
Build and debug works fine.
First. In using navigation I want to control everything by binding in MainWindowViewModel.
Each UserControl is a different screen.
However, the combo box and button are the same.
So, when you move the view, the data should remain the same.
This is actually implemented using RadTabControl.
Tab control does not have a hierarchy, so I want to use navigation.
[TabControl Sample.xaml] : This is automatically set to the datacontext in the window if you do not set the datacontext in the usercontrol.
<telerik:RadTabItem Header="View 1" Width="60" >
<telerik:RadTabItem.Content>
<userControl:UserControlView/>
</telerik:RadTabItem.Content>
</telerik:RadTabItem>
Second. In the current source, Hierarchy 1 and 2 are set to View(UserControlMain - This is not really necessary.).
I want to open only the hierarchy by clicking on the hierarchy. (view maintained, only IsExpanded)
However, if you don't put a View in the selector, an exception will be thrown.
"Must disconnect specific child from current parent Visual before attaching to new parent Visual."
This made it happen when you choose Hierarchy 3.
Images are also attached for easy understanding.
I will be glad for your help.
thank you.
I use WPF RadRichTextBox to show/edit HTML-document containing images having restricted access. To show HTML-document inside RadRichTextBox I use HtmlFormatProvider.
In the case of using WebBrowser control, it is enough to call InternetSetCookie to pass user token to the WebRequest used there.
How can I pass the user token to the HTTP request used inside RadRichTextBox to get an image?
Hi,
I have a RadCartesianChart with a ScatterSeriesDescriptor.
Example:
Public Class PointViewModel
Public Property MyValueInX As ValueContainer
Public Property MyValueInY As ValueContainer
End Class
Public Class ValueContainer
Public Property ValueForDiagram As Double
End Class
When I try to bind ValueForDiagram I get a System.ArgumentException: "Could not find property 'MyValueInX .ValueForDiagram ' for type 'TelerikTestProjekt.ViewModel.PointViewModel'".
My XAML:
<telerik:ScatterSeriesDescriptor ItemsSourcePath="Points" XValuePath="MyValueInX.ValueForDiagram" YValuePath="MyValueInY.ValueForDiagram ">
Is there any way I can set this binding?
Best Regards
Sandra
Hi,
I created a new net5.0 WPF application in Visual Studio (16.9.6) and installed the Progress UI for WPF Extension. I added the Telerik Nuget source and installed the package "Telerik.UI.for.Wpf.NetCore.Xaml". I added the Telerik namespace (http://schemas.telerik.com/2008/xaml/presentation) to my main view and I am able to add controls from that namespace in the XAML code just fine including Intellisense support. I also see all the Telerik controls in the VS Toolbox and I can drag controls onto my view in the designer.
But, all the controls are invisible in the designer and also at runtime. No errors during design time or compilation whatsoever. Seems like there is no default theme applied at all. I already tried to explicitly set a theme but all the controls stay invisible. Default WPF controls work without any issue...
I've been working with Telerik and WPF for 10 years now and I never had a similar issue so far. Docs and forums did not lead me on the right trace unfortunately. Help would be much appreciated!
Thanks!
I would like to set the value of the RadRichTextBox to a property in the view Model. and similarly I would like to get the valueof the Property and bind it to the RadRichTextBox in the WPF UI.
What would be the Syntax used in the XAML file?
I have something like this below in the XAML file.
<telerik:RadRichTextBox x:Name="radRichTextBox" DocumentInheritsDefaultStyleSettings="True" AcceptsTab="True" AcceptsReturn="True" ScrollViewer.VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Hidden" IsSelectionMiniToolBarEnabled="True" IsSpellCheckingEnabled="True" Language="en-US" IsContextMenuEnabled="True" Margin="250,190,121,70" VerticalScrollBarVisibility="Hidden"/>
<telerik:TxtDataProvider Source="{Binding Path=Customer.Notes,ElementName=radRichTextBox, Mode=TwoWay}"/>
But the value is not bound to the Path "Customer.Notes" in the viewmodel.
Hi,
My ViewModel implements INotifyDataErrorInfo
I want to use an attached property Validation.ValidationAdornerSiteFor
RadComboBox highlights an error but tooltip is empty
Is there something I need to enable?
<telerik:RadComboBox
ItemsSource="{Binding Path=ItemsSource}" Validation.ValidationAdornerSiteFor="{Binding ElementName=selectorBehavior}"
AllowMultipleSelection="True"
MultipleSelectionSeparator=";">
<b:Interaction.Behaviors>
<behaviors:SelectedItemsMultiSelectorBehavior x:Name="selectorBehavior" SelectedItems="{Binding Path=SelectedItems, Mode=TwoWay}" />
</b:Interaction.Behaviors>
</telerik:RadComboBox>
Hi to all,
Maybe someone can help me with my problem. Thank you all in advance for any suggestions.
When I programmatically add a row/item to the RadGridView I have always am empty row above the last row:
Here is my XAML code:
<Border x:Name="m_borderOperands" BorderThickness="3" CornerRadius="5" >
<telerik:RadGridView x:Name="m_dgOperands" Margin="1" Background="#FF2C2C2C" CanUserGroupColumns="False"
telerik:StyleManager.Theme="Expression_Dark" BorderThickness="0"
SelectionMode="Extended" SelectionUnit="Mixed" CanUserSortColumns="False"
CanUserSelectColumns="True" ShowColumnFooters="False" ShowColumnHeaders="True"
IsFilteringAllowed="False" CanUserFreezeColumns="False" CanUserDeleteRows="False"
ClipboardPasteMode="Cells" ClipboardCopyMode="Cells"
ScrollViewer.HorizontalScrollBarVisibility="Auto"
ScrollViewer.VerticalScrollBarVisibility="Visible"
ShowGroupPanel="false" EditTriggers="TextInput" GroupRenderMode="Flat"
FontSize="14" MaxWidth="2560" MaxHeight="1600" ValidatesOnDataErrors="InEditMode"
EnableColumnGroupsVirtualization="True" EnableColumnVirtualization="True"
EnableRowVirtualization="True" CanUserInsertRows="False" EnableStickyGroupHeaders="False"
ColumnsSelectionButtonVisibility="Collapsed" ShowGroupFooters="True"
FrozenColumnsSplitterVisibility="Collapsed" />
</Border>
Here are my GridView styles:
<UserControl.Resources>
<Style TargetType="telerik:GridViewHeaderCell">
<Setter Property="LayoutTransform">
<Setter.Value>
<RotateTransform Angle="-90" />
</Setter.Value>
</Setter>
<EventSetter Event="PreviewMouseUp" Handler="GridViewHeaderCell_PreviewMouseUp"/>
<Setter Property="TextWrapping" Value="NoWrap"/>
<Setter Property="Margin" Value="1,10,1,3"/>
</Style>
<Style TargetType="telerik:GridViewHeaderRow">
<Setter Property="MinHeight" Value="10"/>
</Style>
<Style TargetType="telerik:GridViewFooterRow">
<Setter Property="Background" Value="#FF303030"/>
</Style>
<Style TargetType="telerik:GridViewCell">
<Style.Triggers>
<Trigger Property="Value" Value="1">
<Setter Property="Background" Value="#4CFFFF00" />
</Trigger>
<Trigger Property="Value" Value="2">
<Setter Property="Background" Value="#4C32CD32" />
</Trigger>
</Style.Triggers>
</Style>
<Style TargetType="telerik:CommonColumnHeader">
<Setter Property="FontSize" Value="14"/>
<Setter Property="FontWeight" Value="Bold"></Setter>
<Setter Property="Background" Value="#FF303030" />
</Style>
<DataTemplate x:Key="GridViewCellImageTextTemplate">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Image}" Margin="0,0,5,0" MaxHeight="16" MaxWidth="16" />
<TextBlock Text="{Binding InfoText}"/>
</StackPanel>
</DataTemplate>
</UserControl.Resources>
private void AddStepToDataGrid(SelmoCreatorStepBase stepBase, int idxInsert)
{
if (idxInsert >= 0)
{
m_dgOperands.Items.Insert(idxInsert, stepBase);
}
else
{
m_dgOperands.Items.Add(stepBase);
}
}
I appreciate any help.
Best regards
Christoph
Hey,
I am using DataForm with custom field to display one of my complex properties for editing.
I am having an issue with Null reference exceptions from within the Telerik DataForm code when my control extends from a textbox.
I have reproduced the issue in a small sample app that doesn't have any of the complexities of my actual application.
What happens is if you run the application and click Ok or Cancel on the dataform buttons it will through a null reference exception.
This only happens if the HotKeyInputBox extens from a TextBox, if it extends from a Button or other type of control it doesn't throw the exception. Based on my implementation I need to extend it from a TextBox. I can't see any reason it should be throwing an exception.
Any help with getting this working would be fantastic.
MainWindow.xaml
<Window x:Class="DataFormBugDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:DataFormBugDemo"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
mc:Ignorable="d"
Title="MainWindow" Height="450" Width="800">
<Grid>
<telerik:RadDataForm CurrentItem="{Binding Source={x:Static local:Setting.Instance}}"
AutoEdit="True" AutoGenerateFields="True" AutoGeneratingField="RadDataForm_OnAutoGeneratingField"/>
</Grid>
</Window>
MainWindow.xaml.cs
using System.Windows;
using System.Windows.Data;
using Telerik.Windows.Controls;
using Telerik.Windows.Controls.Data.DataForm;
namespace DataFormBugDemo
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
StyleManager.ApplicationTheme = new Office2019Theme();
Office2019Palette.LoadPreset(Office2019Palette.ColorVariation.Dark);
InitializeComponent();
}
private void RadDataForm_OnAutoGeneratingField(object sender, AutoGeneratingFieldEventArgs e)
{
e.DataField.DataMemberBinding.NotifyOnSourceUpdated = true;
e.DataField.DataMemberBinding.NotifyOnValidationError = true;
e.DataField.DataMemberBinding.ValidatesOnDataErrors = true;
e.DataField.DataMemberBinding.ValidatesOnNotifyDataErrors = true;
e.DataField.DataMemberBinding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
if (e.PropertyType == typeof(HotKey))
{
var dataField = new DataFormHotKeySettingsField()
{
Label = e.DataField.Label,
DataMemberBinding = e.DataField.DataMemberBinding,
Description = e.DataField.Description
};
e.DataField = dataField;
}
}
}
}
DataFormHotKeySettingsField.cs
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using Telerik.Windows.Controls;
namespace DataFormBugDemo
{
public class DataFormHotKeySettingsField : DataFormDataField
{
protected override DependencyProperty GetControlBindingProperty()
{
return HotKeyInputBox.HotKeyProperty;
}
protected override Control GetControl()
{
var dependencyProperty = GetControlBindingProperty();
var inputBox = new HotKeyInputBox();
if (DataMemberBinding != null)
{
var binding = DataMemberBinding;
binding.Mode = BindingMode.TwoWay;
inputBox.SetBinding(dependencyProperty, binding);
}
inputBox.SetBinding(IsEnabledProperty, new Binding("IsReadOnly") { Source = this, Converter = new InvertedBooleanConverter() });
return inputBox;
}
}
}
HotKeyInputBox.cs
using System.Windows;
using System.Windows.Controls;
namespace DataFormBugDemo
{
class HotKeyInputBox : TextBox
{
public static readonly DependencyProperty HotKeyProperty = DependencyProperty.Register(
"HotKey", typeof(HotKey), typeof(HotKeyInputBox), new PropertyMetadata(default(HotKey)));
public HotKey HotKey
{
get { return (HotKey)GetValue(HotKeyProperty); }
set { SetValue(HotKeyProperty, value); }
}
public static readonly DependencyProperty DisplayTextProperty = DependencyProperty.Register(
"DisplayText", typeof(string), typeof(HotKeyInputBox), new PropertyMetadata(default(string)));
public string DisplayText
{
get { return (string)GetValue(DisplayTextProperty); }
set { SetValue(DisplayTextProperty, value); }
}
public HotKeyInputBox()
{
DisplayText = "None";
}
}
}
HotKey.cs
using System.Windows.Input;
namespace DataFormBugDemo
{
public class HotKey
{
public bool IsEnabled { get; set; }
public Key Key { get; set; }
}
}
Setting.cs
using PropertyChanged;
namespace DataFormBugDemo
{
[AddINotifyPropertyChangedInterface]
public class Setting
{
public static Setting Instance { get; }
static Setting()
{
Instance = new Setting();
}
public string Name { get; set; } = "Test Name";
public HotKey HotKey { get; set; } = new HotKey();
}
}
App.xaml
<Application x:Class="DataFormBugDemo.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:DataFormBugDemo"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
StartupUri="MainWindow.xaml">
<Application.Resources>
<!-- HotKeyInputBox -->
<ControlTemplate x:Key="HotKeyInputBoxTemplate" TargetType="local:HotKeyInputBox">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Border Grid.Column="0" BorderBrush="{Binding BorderBrush, RelativeSource={RelativeSource TemplatedParent}}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}"
Padding="0" Name="PART_Border" VerticalAlignment="Center">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{TemplateBinding DisplayText}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Foreground="{TemplateBinding Foreground}"
MinWidth="150" Margin="0" />
</StackPanel>
</Border>
</Grid>
</ControlTemplate>
<Style TargetType="local:HotKeyInputBox">
<Setter Property="Template" Value="{StaticResource HotKeyInputBoxTemplate}" />
<Setter Property="HorizontalAlignment" Value="Stretch" />
<Setter Property="HorizontalContentAlignment" Value="Left" />
<Setter Property="BorderBrush" Value="{telerik:Office2019Resource ResourceKey=MainBorderBrush}" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Background" Value="{telerik:Office2019Resource ResourceKey=SecondaryBackgroundBrush}" />
<Setter Property="Foreground" Value="{telerik:Office2019Resource ResourceKey=MainForegroundBrush}" />
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
</Style>
</Application.Resources>
</Application>