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