Fixed casting bug in DependencyPropertyHelper

This commit is contained in:
ClemensFischer 2024-06-13 12:33:07 +02:00
parent 8b08a3b8e6
commit d863c374c7
2 changed files with 16 additions and 4 deletions

View file

@ -71,7 +71,13 @@ namespace MapControl
if (changed != null)
{
metadata.PropertyChangedCallback = (o, e) => changed((FrameworkElement)o, (TValue)e.OldValue, (TValue)e.NewValue);
metadata.PropertyChangedCallback = (o, e) =>
{
if (o is FrameworkElement element)
{
changed(element, (TValue)e.OldValue, (TValue)e.NewValue);
}
};
}
return DependencyProperty.RegisterAttached(name, typeof(TValue), typeof(TOwner), metadata);

View file

@ -34,9 +34,15 @@ namespace MapControl
Action<FrameworkElement, TValue, TValue> changed = null,
bool inherits = false) // unused in WinUI/UWP
{
var metadata = changed != null
? new PropertyMetadata(defaultValue, (o, e) => changed((FrameworkElement)o, (TValue)e.OldValue, (TValue)e.NewValue))
: new PropertyMetadata(defaultValue);
var metadata = changed == null
? new PropertyMetadata(defaultValue)
: new PropertyMetadata(defaultValue, (o, e) =>
{
if (o is FrameworkElement element)
{
changed(element, (TValue)e.OldValue, (TValue)e.NewValue);
}
});
return DependencyProperty.RegisterAttached(name, typeof(TValue), typeof(TOwner), metadata);
}