View Issue Details

IDProjectCategoryView StatusLast Update
0004916NoesisGUIStudiopublic2026-03-20 17:12
Reportermaherne Assigned Todfranjic  
PrioritynormalSeveritycrash 
Status resolvedResolutionfixed 
Product VersionStudio_Beta 
Target VersionStudio_Beta 
Summary0004916: Crash while changing a Brush property in an implicit DataTemplate
Description

See the attached Brush crash video and project for reproduction steps.

If you edit a non-Brush property, the change will apply, but you are forced out of the DataTemplate scope, this is shown in the attached valid scope video.

Exception thrown: read access violation. source-> was 0xFFFFFFFFFFFFFFEF.
App.StudioTool.exe!Noesis::Cast(const Noesis::TypeClass * destType, Noesis::BaseObject * source) Line 20
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Src\DynamicCast.cpp(20)
App.StudioTool.exe!Noesis::DynamicCast_::Apply<Editor::ElementTreeItem,Editor::DocumentObjectTreeItem>(Editor::DocumentObjectTreeItem * from) Line 37
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\DynamicCast.inl(37)
App.StudioTool.exe!Noesis::DynamicCast<Editor::ElementTreeItem *,Editor::DocumentObjectTreeItem *>(Editor::DocumentObjectTreeItem * from) Line 55
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\DynamicCast.inl(55)
App.StudioTool.exe!Editor::ObjectPropertySource::UseRuntimeElement() Line 793
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\ObjectPropertySource.cpp(793)
App.StudioTool.exe!Editor::ObjectPropertySource::GetCurrentValueObject() Line 287
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\ObjectPropertySource.cpp(287)
App.StudioTool.exe!Editor::Property::GetCurrentValueObject() Line 2415
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\Property.cpp(2415)
App.StudioTool.exe!Editor::BrushProperty::GetBrush() Line 174
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\BrushProperty.cpp(174)
App.StudioTool.exe!Editor::BrushProperty::OnSubpropertyChanged(const Editor::Property * subprop) Line 1623
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\BrushProperty.cpp(1623)
App.StudioTool.exe!Editor::Property::ApplyValueCommand(Noesis::BaseComponent * value, bool applyNull, bool canAnimate, Noesis::ArrayRef<Noesis::Ptr<Editor::BaseUndoRedoCommand>> commands) Line 3094
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\Property.cpp(3094)
App.StudioTool.exe!Editor::Property::OnSetValue(Noesis::BaseComponent * param) Line 1555
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\Property.cpp(1555)
App.StudioTool.exe!Editor::ColorProperty::OnSetValue(Noesis::BaseComponent * param) Line 458
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\ColorProperty.cpp(458)
App.StudioTool.exe!Noesis::DelegateImpl<void __cdecl(Noesis::BaseComponent *)>::MemberFuncStub<Editor::Property,void (__cdecl Editor::Property::*)(Noesis::BaseComponent *)>::Invoke(const void * this_, Noesis::BaseComponent * && <args_0>) Line 390
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(390)
App.StudioTool.exe!Noesis::DelegateImpl<void __cdecl(Noesis::BaseComponent *)>::Base::Invoke(Noesis::BaseComponent * && <args_0>) Line 84
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(84)
App.StudioTool.exe!Noesis::Delegate<void __cdecl(Noesis::BaseComponent *)>::operator()(Noesis::BaseComponent * <args_0>) Line 736
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(736)
App.StudioTool.exe!Editor::DelegateCommand::Execute(Noesis::BaseComponent * param) Line 61
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\DelegateCommand.h(61)
App.StudioTool.exe!Editor::InvokeCommandAction::Invoke(Noesis::BaseComponent * parameter) Line 173
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\InvokeCommandAction.s.cpp(173)
App.StudioTool.exe!Noesis::TriggerActionBase::CallInvoke(Noesis::BaseComponent * parameter) Line 48
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Interactivity\Src\TriggerActionBase.cpp(48)
App.StudioTool.exe!Noesis::TriggerBase::InvokeActions(Noesis::BaseComponent * parameter) Line 79
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Interactivity\Src\TriggerBase.cpp(79)
App.StudioTool.exe!Editor::EventTriggerBase::OnEvent(const Noesis::EventArgs & args) Line 97
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\EventTriggerBase.s.cpp(97)
App.StudioTool.exe!Editor::EventTriggerBase::OnRoutedEvent(Noesis::BaseComponent * __formal, const Noesis::RoutedEventArgs & e) Line 293
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\EventTriggerBase.s.cpp(293)
App.StudioTool.exe!Noesis::DelegateImpl<void __cdecl(Noesis::BaseComponent *,Noesis::RoutedEventArgs const &)>::MemberFuncStub<Editor::EventTriggerBase,void (__cdecl Editor::EventTriggerBase::*)(Noesis::BaseComponent *,Noesis::RoutedEventArgs const &)>::Invoke(const void * this_, Noesis::BaseComponent * && <args_0>, const Noesis::RoutedEventArgs & <args_1>) Line 390
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(390)
App.StudioTool.exe!Noesis::DelegateImpl<void __cdecl(Noesis::BaseComponent *,Noesis::RoutedEventArgs const &)>::Base::Invoke(Noesis::BaseComponent * && <args_0>, const Noesis::RoutedEventArgs & <args_1>) Line 84
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(84)
App.StudioTool.exe!Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::RoutedEventArgs const &)>::Invoke(Noesis::BaseComponent * <args_0>, const Noesis::RoutedEventArgs & <args_1>) Line 743
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(743)
App.StudioTool.exe!Noesis::UIElement::NotifyHandlers(const Noesis::RoutedEventArgs & args) Line 2756
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2756)
App.StudioTool.exe!Noesis::UIElement::BubblingEvent(const Noesis::RoutedEventArgs & args) Line 2826
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2826)
App.StudioTool.exe!Noesis::UIElement::RaiseEvent(const Noesis::RoutedEventArgs & args) Line 1313
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(1313)
App.StudioTool.exe!Editor::ColorPicker::OnThumbDragStop(Noesis::BaseComponent * __formal, const Noesis::RoutedEventArgs & __formal) Line 540
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\ColorPicker.cpp(540)
App.StudioTool.exe!Noesis::DelegateImpl<void __cdecl(Noesis::BaseComponent *,Noesis::RoutedEventArgs const &)>::MemberFuncStub<Editor::ColorPicker,void (__cdecl Editor::ColorPicker::*)(Noesis::BaseComponent *,Noesis::RoutedEventArgs const &)>::Invoke(const void * this_, Noesis::BaseComponent * && <args_0>, const Noesis::RoutedEventArgs & <args_1>) Line 390
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(390)
App.StudioTool.exe!Noesis::DelegateImpl<void __cdecl(Noesis::BaseComponent *,Noesis::RoutedEventArgs const &)>::Base::Invoke(Noesis::BaseComponent * && <args_0>, const Noesis::RoutedEventArgs & <args_1>) Line 84
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(84)
App.StudioTool.exe!Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::RoutedEventArgs const &)>::Invoke(Noesis::BaseComponent * <args_0>, const Noesis::RoutedEventArgs & <args_1>) Line 743
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(743)
App.StudioTool.exe!Noesis::UIElement::NotifyHandlers(const Noesis::RoutedEventArgs & args) Line 2756
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2756)
App.StudioTool.exe!Noesis::UIElement::BubblingEvent(const Noesis::RoutedEventArgs & args) Line 2826
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2826)
App.StudioTool.exe!Noesis::UIElement::RaiseEvent(const Noesis::RoutedEventArgs & args) Line 1313
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(1313)
App.StudioTool.exe!Editor::ColorPickerHueSlider::OnMouseLeftButtonUp(const Noesis::MouseButtonEventArgs & e) Line 110
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Studio\Src\ColorPickerHueSlider.cpp(110)
App.StudioTool.exe!Noesis::UIElement::StaticFillClassType::__l2::<lambda_36>::operator()(Noesis::BaseComponent * obj, const Noesis::EventArgs & e) Line 3703
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(3703)
App.StudioTool.exe!Noesis::DelegateImpl<void __cdecl(Noesis::BaseComponent *,Noesis::EventArgs const &)>::FunctorStub<`Noesis::UIElement::StaticFillClassType'::`2'::<lambda_36>>::Invoke(const void * this_, Noesis::BaseComponent * && <args_0>, const Noesis::EventArgs & <args_1>) Line 276
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(276)
App.StudioTool.exe!Noesis::DelegateImpl<void __cdecl(Noesis::BaseComponent *,Noesis::EventArgs const &)>::Base::Invoke(Noesis::BaseComponent * && <args_0>, const Noesis::EventArgs & <args_1>) Line 84
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(84)
App.StudioTool.exe!Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::EventArgs const &)>::operator()(Noesis::BaseComponent * <args_0>, const Noesis::EventArgs & <args_1>) Line 736
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(736)
App.StudioTool.exe!Noesis::UIElement::NotifyTypeHandlers(const Noesis::TypeClass * type, const Noesis::RoutedEventArgs & args) Line 2790
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2790)
App.StudioTool.exe!Noesis::UIElement::NotifyTypeHandlers(const Noesis::TypeClass * type, const Noesis::RoutedEventArgs & args) Line 2797
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2797)
App.StudioTool.exe!Noesis::UIElement::NotifyTypeHandlers(const Noesis::TypeClass * type, const Noesis::RoutedEventArgs & args) Line 2797
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2797)
App.StudioTool.exe!Noesis::UIElement::NotifyTypeHandlers(const Noesis::TypeClass * type, const Noesis::RoutedEventArgs & args) Line 2797
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2797)
App.StudioTool.exe!Noesis::UIElement::NotifyTypeHandlers(const Noesis::TypeClass * type, const Noesis::RoutedEventArgs & args) Line 2797
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2797)
App.StudioTool.exe!Noesis::UIElement::NotifyTypeHandlers(const Noesis::TypeClass * type, const Noesis::RoutedEventArgs & args) Line 2797
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2797)
App.StudioTool.exe!Noesis::UIElement::NotifyHandlers(const Noesis::RoutedEventArgs & args) Line 2744
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2744)
App.StudioTool.exe!Noesis::UIElement::PromoteMouseButtonEvent(const Noesis::MouseButtonEventArgs & e, const Noesis::RoutedEvent * leftEvent, const Noesis::RoutedEvent * rightEvent) Line 3360
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(3360)
App.StudioTool.exe!Noesis::UIElement::StaticFillClassType::__l2::<lambda_40>::operator()(Noesis::BaseComponent * obj, const Noesis::EventArgs & e) Line 3713
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(3713)
App.StudioTool.exe!Noesis::DelegateImpl<void __cdecl(Noesis::BaseComponent *,Noesis::EventArgs const &)>::FunctorStub<`Noesis::UIElement::StaticFillClassType'::`2'::<lambda_40>>::Invoke(const void * this_, Noesis::BaseComponent * && <args_0>, const Noesis::EventArgs & <args_1>) Line 276
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(276)
App.StudioTool.exe!Noesis::DelegateImpl<void __cdecl(Noesis::BaseComponent *,Noesis::EventArgs const &)>::Base::Invoke(Noesis::BaseComponent * && <args_0>, const Noesis::EventArgs & <args_1>) Line 84
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(84)
App.StudioTool.exe!Noesis::Delegate<void __cdecl(Noesis::BaseComponent *,Noesis::EventArgs const &)>::operator()(Noesis::BaseComponent * <args_0>, const Noesis::EventArgs & <args_1>) Line 736
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Core\Kernel\Include\NsCore\Delegate.inl(736)
App.StudioTool.exe!Noesis::UIElement::NotifyTypeHandlers(const Noesis::TypeClass * type, const Noesis::RoutedEventArgs & args) Line 2790
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2790)
App.StudioTool.exe!Noesis::UIElement::NotifyTypeHandlers(const Noesis::TypeClass * type, const Noesis::RoutedEventArgs & args) Line 2797
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2797)
App.StudioTool.exe!Noesis::UIElement::NotifyTypeHandlers(const Noesis::TypeClass * type, const Noesis::RoutedEventArgs & args) Line 2797
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2797)
App.StudioTool.exe!Noesis::UIElement::NotifyTypeHandlers(const Noesis::TypeClass * type, const Noesis::RoutedEventArgs & args) Line 2797
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2797)
App.StudioTool.exe!Noesis::UIElement::NotifyTypeHandlers(const Noesis::TypeClass * type, const Noesis::RoutedEventArgs & args) Line 2797
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2797)
App.StudioTool.exe!Noesis::UIElement::NotifyTypeHandlers(const Noesis::TypeClass * type, const Noesis::RoutedEventArgs & args) Line 2797
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2797)
App.StudioTool.exe!Noesis::UIElement::NotifyHandlers(const Noesis::RoutedEventArgs & args) Line 2744
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2744)
App.StudioTool.exe!Noesis::UIElement::BubblingEvent(const Noesis::RoutedEventArgs & args) Line 2826
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(2826)
App.StudioTool.exe!Noesis::UIElement::RaiseEvent(const Noesis::RoutedEventArgs & args) Line 1313
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\UIElement.cpp(1313)
App.StudioTool.exe!Noesis::Mouse::ButtonUp(int x, int y, Noesis::MouseButton button) Line 393
    at D:\Source\Noesis\NoesisStudio_Latest\NoesisSDK\Native\Src\Packages\Gui\Core\Src\Mouse.cpp(393)
Attached Files
PlatformAny

Activities

dfranjic

dfranjic

2026-03-20 17:12

developer   ~0012082

Fixed in r1681

Issue History

Date Modified Username Field Change
2026-03-20 15:44 maherne New Issue
2026-03-20 15:44 maherne File Added: ImplicitTemplateEdit invalid scope 2026-03-20 14-41-55.mp4
2026-03-20 15:44 maherne File Added: ImplicitTemplateEdit Brush crash 2026-03-20 14-36-30.mp4
2026-03-20 15:44 maherne File Added: ImplicitTemplateEdit.zip
2026-03-20 15:44 maherne Assigned To => dfranjic
2026-03-20 15:44 maherne Status new => assigned
2026-03-20 15:44 maherne Target Version => Studio_Beta
2026-03-20 17:12 dfranjic Status assigned => resolved
2026-03-20 17:12 dfranjic Resolution open => fixed
2026-03-20 17:12 dfranjic Note Added: 0012082