View Issue Details

IDProjectCategoryView StatusLast Update
0004009NoesisGUIC++ SDKpublic2026-04-27 12:17
ReporterRafael Munoz Assigned Tosfernandez  
PrioritynormalSeverityminor 
Status assignedResolutionopen 
Product Version3.2.4 
Target Version3.2.14 
Summary0004009: Difference fallback value for not found element on ResourceDictionary between WPF and Noesis
Description

DataContext is a ResourceDictionary
DurabilityPercentage is an element that may not be present

In WPF, this data trigger matches to x:Null and DurabilityBar is Collapsed
<DataTrigger Binding="{Binding [DurabilityPercentage]}" Value="{x:Null}">
<Setter TargetName="DurabilityBar" Property="Visibility" Value="Collapsed" />
</DataTrigger>

In Noesis, it does not match. So i'm forced to explicit set FallbackValue to x:Null
<DataTrigger Binding="{Binding [DurabilityPercentage], FallbackValue={x:Null}}" Value="{x:Null}">
<Setter TargetName="DurabilityBar" Property="Visibility" Value="Collapsed" />
</DataTrigger>

Steps To Reproduce

Declare a grid resource to be used as datasource similar to the following
<Grid x:Key="ItemsData">
<Grid>
<Grid.Resources>
<sys:String x:Key="Name">AA</sys:String>
</Grid.Resources>
</Grid>
<Grid>
<Grid.Resources>
<sys:String x:Key="Name">BB</sys:String>
<sys:Double x:Key="DurabilityPercentage">66</sys:Double>
</Grid.Resources>
</Grid>
</Grid>

Use that data source as ItemsSource in a ListBox
<ListBox ItemsSource="{Binding Source={StaticResource ItemsData}, Path=Children}"
Style="{StaticResource ListboxStyle}"
SelectedIndex="0"/>

Ensure ListBoxStyle Binds data context to the Resources of each child item
<Setter Property="ItemTemplate">
<Setter.Value>
<DataTemplate>
<ContentControl DataContext="{Binding Resources}"
Style="{StaticResource Item}" />
</DataTemplate>
</Setter.Value>
</Setter>

Make a trigger on Item template similar to the following
<Grid x:Name="ItemFrame">
<ProgressBar x:Name="DurabilityBar"
Value="{Binding [DurabilityPercentage]}"/>
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding [DurabilityPercentage]}" Value="{x:Null}">
<Setter TargetName="DurabilityBar" Property="Visibility" Value="Collapsed" />
</DataTrigger>
</ControlTemplate.Triggers>

Expected: The items with no DurabilityPercentage, are Collapsed
Actual: The items with no DurabilityPercentage, are Visible

PlatformAny

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2025-03-25 19:14 Rafael Munoz New Issue
2025-03-25 19:14 Rafael Munoz Tag Attached: C++
2025-03-25 19:14 Rafael Munoz Tag Attached: NoesisWPF_Parity
2025-03-26 12:40 jsantos Assigned To => sfernandez
2025-03-26 12:40 jsantos Status new => assigned
2025-03-26 12:40 jsantos Target Version => 3.2.8
2025-06-06 12:52 jsantos Target Version 3.2.8 => 3.2.9
2025-10-02 00:48 jsantos Target Version 3.2.9 => 3.2.10
2025-10-20 18:25 jsantos Target Version 3.2.10 => 3.2.11
2026-01-20 19:32 jsantos Target Version 3.2.11 => 3.2.12
2026-03-04 00:39 jsantos Target Version 3.2.12 => 3.2.13
2026-04-27 12:17 jsantos Target Version 3.2.13 => 3.2.14