View Issue Details

IDProjectCategoryView StatusLast Update
0004379NoesisGUIUnrealpublic2025-09-17 19:57
ReporterSillyGoose Assigned Tohcpizzi  
PrioritynormalSeverityminor 
Status resolvedResolutionfixed 
Product Version3.2.8 
Target Version3.2.9Fixed in Version3.2.9 
Summary0004379: Noesis Enums dont work as bindings for Xaml
Description

Hi,

We've noticed that the enums in NoesisEnums.h dont work as bindings in NoesisGUI 3.2.8. I haven't tested this using blueprint only C++ as they aren't all BlueprintTypes (I believe only one is)

Steps to reproduce (feel free to use the upload files for this):

  1. Create xaml that has the visibility bound on an element (My example uses a button)
  2. Create a Viewmodel that has a property called Visibility
  3. Setup a NoesisInstance that uses the created Xaml
  4. On NativeConstruct call SetDataContext and set the visibility value to Collapsed
  5. Put the NoesisInstance on Screen and notice how the button is still visible

This isn't just limited to the ENoesisVisibility enum. We believe this is the case with all of them but have only tested ENoesisVisibility & ENoesisClickMode. See the original forum post for this issue: https://www.noesisengine.com/forums/viewtopic.php?t=3741

Attached Files
MainPage.xaml (456 bytes)   
<Page
  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"
  mc:Ignorable="d"
  d:DesignWidth="1920"
  d:DesignHeight="1080"
  Background="#FF4D5052">
  <Grid>
    <Button Content="Button" Visibility="{Binding Path=Visibility}"/>
  </Grid>
</Page>
MainPage.xaml (456 bytes)   
BasicNoesisInstance.cpp (500 bytes)   
#include "BasicNoesisInstance.h"

#include "NoesisTypeClass.h"

void UNoesisViewModelExample::SetVisibility(ENoesisVisibility NewVisibility)
{
	Visibility = NewVisibility;

	NoesisNotifyPropertyChanged(this, GET_MEMBER_NAME_CHECKED(ThisClass, Visibility));
}

void UBasicNoesisInstance::NativeConstruct()
{
	Super::NativeConstruct();

	ViewModel = NewObject<UNoesisViewModelExample>(this);

	SetDataContext(ViewModel);

	ViewModel->SetVisibility(ENoesisVisibility::Collapsed);
}
BasicNoesisInstance.cpp (500 bytes)   
BasicNoesisInstance.h (660 bytes)   
#pragma once

#include "NoesisInstance.h"
#include "NoesisEnums.h"

#include "BasicNoesisInstance.generated.h"

UCLASS(BlueprintType)
class UNoesisViewModelExample : public UObject
{
	GENERATED_BODY()

public:
	void SetVisibility(ENoesisVisibility NewVisibility);

protected:
	UPROPERTY(BlueprintReadWrite)
	ENoesisVisibility Visibility = ENoesisVisibility::Visible;
};

/* Noesis Instance Class Demo for enums not working */
UCLASS(Abstract)
class UBasicNoesisInstance : public UNoesisInstance
{
	GENERATED_BODY()

public:
	virtual void NativeConstruct() override;

	UPROPERTY()
	UNoesisViewModelExample* ViewModel = nullptr;
};
BasicNoesisInstance.h (660 bytes)   
PlatformAny

Activities

hcpizzi

hcpizzi

2025-09-17 19:57

developer   ~0011046

The following enums have been exposed to Blueprints and are exposed for bindings:

NoesisOrientation
NoesisVisibility
NoesisHorizontalAlignment
NoesisVerticalAlignment
NoesisTextAlignment
NoesisTextWrapping
NoesisTextTrimming

Issue History

Date Modified Username Field Change
2025-09-16 11:35 SillyGoose New Issue
2025-09-16 11:35 SillyGoose File Added: MainPage.xaml
2025-09-16 11:35 SillyGoose File Added: BasicNoesisInstance.cpp
2025-09-16 11:35 SillyGoose File Added: BasicNoesisInstance.h
2025-09-16 11:40 jsantos Assigned To => hcpizzi
2025-09-16 11:40 jsantos Status new => assigned
2025-09-16 11:40 jsantos Target Version => 3.2.9
2025-09-17 19:57 hcpizzi Status assigned => resolved
2025-09-17 19:57 hcpizzi Resolution open => fixed
2025-09-17 19:57 hcpizzi Fixed in Version => 3.2.9
2025-09-17 19:57 hcpizzi Note Added: 0011046