Skip to content

KAR richtingnummers instelbaar in GUI + toevoegen aan SpecGen#150

Open
LexTrafico wants to merge 2 commits intomennowo:masterfrom
LexTrafico:dev-LT
Open

KAR richtingnummers instelbaar in GUI + toevoegen aan SpecGen#150
LexTrafico wants to merge 2 commits intomennowo:masterfrom
LexTrafico:dev-LT

Conversation

@LexTrafico
Copy link
Contributor

Mogelijkheid om de waarde van de KAR richtingparameters (PRM karsg## en karsghd##) in te stellen via de GUI (issue #149),

<TextBlock Text="Overig" Grid.ColumnSpan="2" Margin="5" Padding="0" TextDecorations="Underline" />
<Label Content="Check op wagen nummer" Grid.Row="1" />
<CheckBox IsChecked="{Binding Path=CheckWagenNummer,UpdateSourceTrigger=PropertyChanged}" Margin="5" />
<Grid Grid.ColumnSpan="2" Visibility="{Binding Path=HasKAROV,Converter={StaticResource Bool2VisConv}}" >
Copy link
Owner

@mennowo mennowo Jun 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Merk op dat AutoGrid al kolommen aanmaakt via Columns="Auto,*". Je kunt dus deze Grid verwijderen ten gunste van gewoon direct in de lijst opnemen van Label en TextBox

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Er is een geneste Grid omdat er twee visibility condities zijn: HasKAROV en KARSignaalGroepNummersInParameters. De een werkt nu op de geneste Grid, de ander op Label en TextBox. Wanneer 1 van beide ontbreekt mag de optie niet getoond worden (vind ik tenminste ;-) ).
Ik heb gepoogd om eea te maken met een booleanAndConverter (via MultiValueConverter), maar dat kreeg ik niet werkend.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dit kun je in het ViewModel oplossen. Bv.:

public bool TwoConditions => Condition1 && Condition2;

// ... en in de setters van Codition1 en Condition2:

OnPropertyChanged(nameof(TwoCoditions));

Vervolgens kun je in de View gewoon een regulier Binding doen op de TwoConditions property.

Copy link
Owner

@mennowo mennowo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dit is geen echte null check, want die cast naar int zal alsnog een nullref geven. Je zou moeten kijken naar iFcm.HasValue. Ik zal het nu wel zo overnemen en later eens aanpassen als het ofwel een issue wordt ofwel ik erlangs kom toevallig


[Browsable(false)]
public int KARSignaalGroepNummer
{
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dit kan ik niet helemaal plaatsen. Functioneel zou ik het beste vinden, indien je als gebruiker gewoon in kunt vullen wat je in wilt vullen, en dat ook in het model komt. Deze code lijkt eigenstandig iets te doen met de ingevoerde waarde op basis van instellingen die hier buiten beeld vallen.

Mijn voorstel zou zijn: hier gewoon één waarde met een simpele get-set, en dan in de code generatie deze logica toepassen op basis van de algemene instellingen.

Copy link
Owner

@mennowo mennowo Nov 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Graag zou ik deze PR mergen met de master, deze code vind ik evenwel toch wat problematisch, vooral omdat ik niet kan volgen wat functioneel de bedoeling is.
Mijn voorkeur zou zijn: KARSignaalGroepNummer een reguliere full property maken, en dit soort logica verplaatsen naar de code generator (met commentaar zodat duidelijk is wat er functioneel gebeurt). Tenzij er een goede reden is om dit hier te doen, maar ook dan hebben we commentaar nodig zodat de code in de toekomst beheerbaar blijft.
Excuses voor de vertraging omtrent deze merge, voortgang rond TLCGen hing enige tijd op een merge van de "interstartgroen" branch, die anders te ver af zou geraken van de master.

[Description("KAR richtingnummer HD")]
[BrowsableCondition(nameof(KARSignaalGroepNummersInParameters))]
public int KARSignaalGroepNummerHD
{
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zie vorige opmerkingen: mijn voorstel zou zijn de logica te verplaatsen naar de code generatie

<TextBlock Text="Overig" Grid.ColumnSpan="2" Margin="5" Padding="0" TextDecorations="Underline" />
<Label Content="Check op wagen nummer" Grid.Row="1" />
<CheckBox IsChecked="{Binding Path=CheckWagenNummer,UpdateSourceTrigger=PropertyChanged}" Margin="5" />
<Grid Grid.ColumnSpan="2" Visibility="{Binding Path=HasKAROV,Converter={StaticResource Bool2VisConv}}" >
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dit kun je in het ViewModel oplossen. Bv.:

public bool TwoConditions => Condition1 && Condition2;

// ... en in de setters van Codition1 en Condition2:

OnPropertyChanged(nameof(TwoCoditions));

Vervolgens kun je in de View gewoon een regulier Binding doen op de TwoConditions property.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants