KAR richtingnummers instelbaar in GUI + toevoegen aan SpecGen#150
KAR richtingnummers instelbaar in GUI + toevoegen aan SpecGen#150LexTrafico wants to merge 2 commits intomennowo:masterfrom
Conversation
TLCGen.PluggedInItems/TLCGen.Generators.CCOL/CodeGeneration/Functionality/PrioCodeGenerator.cs
Outdated
Show resolved
Hide resolved
| <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}}" > |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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.
mennowo
left a comment
There was a problem hiding this comment.
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 | ||
| { |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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 | ||
| { |
There was a problem hiding this comment.
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}}" > |
There was a problem hiding this comment.
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.
Mogelijkheid om de waarde van de KAR richtingparameters (PRM karsg## en karsghd##) in te stellen via de GUI (issue #149),