Laden...

Forenbeiträge von Pinot Ingesamt 10 Beiträge

18.11.2022 - 12:05 Uhr

Hallo,

z.B. über den get-Accessor der Property, an die du bindest.

02.11.2022 - 20:44 Uhr

Um die Fehlerquelle der ungültigen Zeichen auszuschließen, könntest du die ReadOnlyCollection<System.IO.Compression.ZipArchiveEntry> (Property System.IO.Compression.ZipArchive.Entries) mit System.IO.GetInvalidFileNameChars() abgleichen.
https://learn.microsoft.com/en-us/dotnet/api/system.io.path.getinvalidfilenamechars?view=net-6.0 (Docs)

01.11.2022 - 00:05 Uhr

Hast du dir die Hinweise zu den möglichen Rundungsfehlern schonmal angeschaut?
https://learn.microsoft.com/en-us/dotnet/api/system.math.round?view=net-6.0#midpoint-values-and-rounding-conventions (Docs)

Rounding away from zero is the most widely known form of rounding, while rounding to nearest even is the standard in financial and statistical operations. It conforms to IEEE Standard 754, section 4.

ToEven entspricht dem banker's rounding, was spricht denn gegen deine Zeile


d = Math.Round(rabattpreis, 1, MidpointRounding.ToEven);

?

Wenn man 5,70 anstatt 5,7 ausgibt, dann würde ich das nicht als Rundung von 5,67 interpretieren sondern als Rundung von bspw. 5,701 bis 5,704 auf 5,70. Aus diesem Grund sind die beiden Nachkommastellen aus meiner Sicht auch eher irreführend als hilfreich.

30.10.2022 - 09:42 Uhr

Macht's einen Unterschied, wenn du durch

100m

anstatt durch

100

teilst ?

(Und analog dazu die Multiplikation / Division mit 2: aus 2 mach 2m )

27.10.2022 - 10:41 Uhr

Danke für den Austausch!
Falls jemand auf das gleiche Problem mit dem Tuple stößt, meine Lösung sieht jetzt so aus:

AddPositionEventArgs.cs


//....
public sealed record AddPositionEventArgs(MouseEventArgs MouseEventArgs,
        string Member,
        string Type);
//....

Child Component: (AccordionItemContainer.razor)


//....
<button type="button" @onclick="(e => AddPositionCallback.InvokeAsync(new AddPositionEventArgs(e, members.Key, Type)))">

@code
{
//....
[Parameter, EditorRequired]
public EventCallback<AddPositionEventArgs> AddPositionCallback { get; set; }
//....
}

Parent Component:


//....
<AccordionItemContainer AddPositionCallback="HandleAddPosition" />

@code
{
//....
private void HandleAddPosition(AddPositionEventArgs val) { .... }
//....
}

26.10.2022 - 23:29 Uhr

Hab's auf die Schnelle mit einem record anstatt ValueTuple versucht, das funktioniert einwandfrei.
Auch wenn's mit dem Tuple "leaner" hätte funktionieren können, ist ein record wahrscheinlich auch die elegantere Variante 😉

26.10.2022 - 23:18 Uhr

Auch wenn's nicht zur Lösung beiträgt, aber dieses Issue scheint in die gleiche Richtung zu gehen, hier taucht der CS1001 ebenfalls im Zusammenhang mit EventCallback<ValueTuple> auf:
https://github.com/dotnet/razor-compiler/issues/310

26.10.2022 - 22:50 Uhr

Danke für die Rückmeldung, allerdings ist mir dein Lösungsansatz nicht klar. Ich habe doch in der Parent Component keine Variablen, die ich dem Lambda übergeben könnte.
Das Tag in der Parent Component erwartet für

AddPositionCallback

ein delegate mit dem parameter type

(MouseEventArgs, string, string)

und das erreiche ich doch mit

AddPositionCallback="HandleAddPosition"

.
Wie gesagt, der Build funktioniert und die App tut auch genau das was sie soll, nur die Fehlermeldung im Editor bleibt.

26.10.2022 - 22:02 Uhr

AccordionItemContainer ist eine von mir erstellte Razor Component, kein fertiges Paket.
Mein Code basiert auf der Beschreibung in den Docs (https://learn.microsoft.com/en-us/aspnet/core/blazor/components/event-handling?view=aspnetcore-6.0#eventcallback ) mit der Verwendung von EventCallback<T>, wobei T in meinem Fall ein Tuple und nicht wie im Beispiel vom Typ MouseEventArgs ist.
Neben der von mir geposteten Variante führen auch folgende Abwandlungen zu einem erfolgreichen Build, die Fehlermeldung in VS bleibt aber leider bestehen:


AddPositionCallback="@HandleAddPosition" //führendes "@" hinzu

oder die Lambda-Variante:


AddPositionCallback="@(arg => HandleAddPosition(arg))"

26.10.2022 - 16:14 Uhr

Hallo Forum!

Ich habe folgendes Phänomen in meiner Blazor Server App:
Ich möchte meiner Component "AccordionItemContainer" einen Event Handler als Parameter übergeben. Der Build-Vorgang funktioniert, allerdings zeigt mir Visual Studio permanent die doppelte Fehlermeldung> Fehlermeldung:

CS1001: Identifier expected an.

Child Component:


//....
[Parameter, EditorRequired]
public EventCallback<(MouseEventArgs, string, string)> AddPositionCallback { get; set; } 
//....

Parent Component:


//....
<AccordionItemContainer AddPositionCallback="HandleAddPosition" />  //relevante Zeile für die Fehlermeldung
//....

@code {
//....
private void HandleAddPosition((MouseEventArgs e, string member, string type) val)
{
//....
}
//....

Hat jemand eine Idee, warum Visual Studio den Fehler 2x anzeigt aber der Build-Vorgang funktioniert? Kann es evtl. an dem Tuple als Typ des EventCallbacks liegen?

Danke euch!