I just got these Problem on Windows XP.
If any binded value get changed, the PropertyChanged event will throw an exception.
XAML-Code:
01.<telerik:RadWindow x:Class="TelerikWpfApp.TelerikScenario"03. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"04. xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"05. Header="TelerikScenario" Height="300" Width="300">06. <Grid>07. <Grid.ColumnDefinitions>08. <ColumnDefinition />09. <ColumnDefinition />10. </Grid.ColumnDefinitions>11. 12. <Label Content="{Binding Text, UpdateSourceTrigger=PropertyChanged}" Grid.Column="0" />13. 14. <Button Content="CHANGE VALUE" Click="Button_Click" Grid.Column="1" Height="150" Margin="5" />15. </Grid>16.</telerik:RadWindow>
Code Behind:
using System;using System.ComponentModel;using System.Windows;namespace TelerikWpfApp{ /// <summary> /// Interaction logic for TelerikScenario.xaml /// </summary> public partial class TelerikScenario : INotifyPropertyChanged { #region Private Fields private string text = "test"; #endregion Private Fields #region Public Events public event PropertyChangedEventHandler PropertyChanged; #endregion Public Events #region Protected Methods protected void SetProperty<T>(ref T storage, T value, string property = null) { if (Object.Equals(storage, value)) return; storage = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(property)); } #endregion Protected Methods #region Public Properties public string Text { get { return text; } set { SetProperty(ref text, value); } } #endregion Public Properties #region Public Constructors public TelerikScenario() { InitializeComponent(); DataContext = this; } #endregion Public Constructors #region Private Methods private void Button_Click(object sender, RoutedEventArgs e) { try { Text = "123"; } catch (Exception ex) { MessageBox.Show(ex.Message); } } #endregion Private Methods }}
Exception:
Cannot change AllowsTransparency after a Window has been shown or
WindowInteropHelper.EnsureHandle has been called.
at System.Windows.Window.CoerceAllowsTransparency(DependencyObject d, Object value)
at System.Windows.DependencyObject.ProcessCoerceValue(DependencyProperty dp,
PropertyMetadata metadata, EntryIndex& entryIndex, Int32& targetIndex,
EffectiveValueEntry& newEntry, EffectiveValueEntry& oldEntry, Object& oldValue,
Object baseValue, Object controlValue, CoerceValueCallback coerceValueCallback,
Boolean coerceWithDeferredReference, Boolean coerceWithCurrentValue, Boolean
skipBaseValueChecks)
at System.Windows.DependencyObject.UpdateEffectiveValue(EntryIndex entryIndex,
DependencyProperty dp, PropertyMetadata metadata, EffectiveValueEntry oldEntry,
EffectiveValueEntry& newEntry, Boolean coerceWithDeferredReference, Boolean
coerceWithCurrentValue, OperationType operationType)
at System.Windows.DependencyObject.InvalidateProperty(DependencyProperty dp)
at System.Windows.Data.BindingExpressionBase.Invalidate(Boolean
isASubPropertyChange)
at System.Windows.Data.BindingExpression.TransferValue(Object newValue, Boolean
isASubPropertyChange)
at System.Windows.Data.BindingExpression.ScheduleTransfer(Boolean
isASubPropertyChange)
at MS.Internal.Data.ClrBindingWorker.NewValueAvailable(Boolean
dependencySourcesChanged, Boolean initialValue, Boolean isASubPropertyChange)
at MS.Internal.Data.PropertyPathWorker.UpdateSourceValueState(Int32 k,
ICollectionView collectionView, Object newValue, Boolean isASubPropertyChange)
at MS.Internal.Data.ClrBindingWorker.OnSourcePropertyChanged(Object o, String
propName)
at
MS.Internal.Data.PropertyPathWorker.System.Windows.IWeakEventListener.ReceiveWeakEvent(Type
managerType, Object sender, EventArgs e)
at System.Windows.WeakEventManager.DeliverEventToList(Object sender, EventArgs
args, ListenerList list)
at System.ComponentModel.PropertyChangedEventManager.OnPropertyChanged(Object
sender, PropertyChangedEventArgs args)
at TelerikWpfApp.TelerikScenario.SetProperty[T](T& storage, T value, String
property) in C:\Users\BL\Documents\Visual Studio
2017\Projects\TelerikWpfApp\TelerikWpfApp\TelerikScenario.xaml.cs:line 39
at TelerikWpfApp.TelerikScenario.set_Text(String value) in
C:\Users\BL\Documents\Visual Studio
2017\Projects\TelerikWpfApp\TelerikWpfApp\TelerikScenario.xaml.cs:line 47
at TelerikWpfApp.TelerikScenario.Button_Click(Object sender, RoutedEventArgs e)
in C:\Users\BL\Documents\Visual Studio
2017\Projects\TelerikWpfApp\TelerikWpfApp\TelerikScenario.xaml.cs:line 66
