Ich habe eine benutzerdefinierte Spaltenkomponente in meinem Mudblazor -DataGrid erstellt, um Daten dynamisch anzuzeigen und die Sortierung zu aktivieren, die wie erwartet funktioniert. Wenn ich jedoch versuche, die Filterung dieser Spalten anzuwenden, begegne ich einen Fehler: "Instanzeigenschaft 'Name' ist nicht für Typ 'System' System.Object '" definiert. Die Spalte verwendet eine PropertyExpression, um dynamisch Lambda -Ausdrücke für den Zugriff auf Eigenschaften zu generieren. Während dies für die Sortierung funktioniert, fehlschlägt sie während der Filterung, da die Daten als System.Object behandelt werden. Mein Muddatagrid ist mit dynamisch generierten Typen mit System.reflection.emit konfiguriert. Ich suche nach einer Lösung, um Filterfilterfilterfilterfilterfest mit diesen dynamischen Spalten oder einem alternativen Ansatz zur Lösung des Problems < /p>
zu beheben
Unhandled exception in circuit 'ZrG_nxlCYQm_E9s02ePEHPq3brotbidZKxPtIHYph_0'.
System.ArgumentException: Instance property 'Name' is not defined for type 'System.Object' (Parameter 'propertyName')
at System.Linq.Expressions.Expression.Property(Expression expression, String propertyName)
at CustomColumnDemo.Components.Pages.DynamicData.CustomColumn`1.get_PropertyExpression() in D:\C#\CustomColumnDemo\CustomColumnDemo\Components\Pages\DynamicData\CustomColumn.cs:line 36
at MudBlazor.FilterDefinition`1.GenerateFilterFunction(FilterOptions filterOptions)
at MudBlazor.MudDataGrid`1.get_FilteredItems()
at MudBlazor.MudDataGrid`1.get_CurrentPageItems()
at MudBlazor.MudDataGrid`1.b__520_6(RenderTreeBuilder __builder3)
at Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddContent(Int32 sequence, RenderFragment fragment)
at MudBlazor.MudDropContainer`1.b__94_0(RenderTreeBuilder __builder2)
at Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddContent(Int32 sequence, RenderFragment fragment)
at Microsoft.AspNetCore.Components.CascadingValue`1.Render(RenderTreeBuilder builder)
at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment, Exception& renderFragmentException)
Ich habe eine benutzerdefinierte Spaltenkomponente in meinem Mudblazor -DataGrid erstellt, um Daten dynamisch anzuzeigen und die Sortierung zu aktivieren, die wie erwartet funktioniert. Wenn ich jedoch versuche, die Filterung dieser Spalten anzuwenden, begegne ich einen Fehler: "Instanzeigenschaft 'Name' ist nicht für Typ 'System' System.Object '" definiert. Die Spalte verwendet eine PropertyExpression, um dynamisch Lambda -Ausdrücke für den Zugriff auf Eigenschaften zu generieren. Während dies für die Sortierung funktioniert, fehlschlägt sie während der Filterung, da die Daten als System.Object behandelt werden. Mein Muddatagrid ist mit dynamisch generierten Typen mit System.reflection.emit konfiguriert. Ich suche nach einer Lösung, um Filterfilterfilterfilterfilterfest mit diesen dynamischen Spalten oder einem alternativen Ansatz zur Lösung des Problems < /p> zu beheben[code] Unhandled exception in circuit 'ZrG_nxlCYQm_E9s02ePEHPq3brotbidZKxPtIHYph_0'. System.ArgumentException: Instance property 'Name' is not defined for type 'System.Object' (Parameter 'propertyName') at System.Linq.Expressions.Expression.Property(Expression expression, String propertyName) at CustomColumnDemo.Components.Pages.DynamicData.CustomColumn`1.get_PropertyExpression() in D:\C#\CustomColumnDemo\CustomColumnDemo\Components\Pages\DynamicData\CustomColumn.cs:line 36 at MudBlazor.FilterDefinition`1.GenerateFilterFunction(FilterOptions filterOptions) at MudBlazor.MudDataGrid`1.get_FilteredItems() at MudBlazor.MudDataGrid`1.get_CurrentPageItems() at MudBlazor.MudDataGrid`1.b__520_6(RenderTreeBuilder __builder3) at Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddContent(Int32 sequence, RenderFragment fragment) at MudBlazor.MudDropContainer`1.b__94_0(RenderTreeBuilder __builder2) at Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder.AddContent(Int32 sequence, RenderFragment fragment) at Microsoft.AspNetCore.Components.CascadingValue`1.Render(RenderTreeBuilder builder) at Microsoft.AspNetCore.Components.Rendering.ComponentState.RenderIntoBatch(RenderBatchBuilder batchBuilder, RenderFragment renderFragment, Exception& renderFragmentException) [/code] [b]Dies ist die Rasiererkomponente[/b] [code]
private Type CreateDynamicType(string typeName, Dictionary properties) { // Dynamic type creation logic var assemblyName = new AssemblyName("DynamicAssembly"); var assemblyBuilder = AssemblyBuilder.DefineDynamicAssembly(assemblyName, AssemblyBuilderAccess.Run); var moduleBuilder = assemblyBuilder.DefineDynamicModule("MainModule"); var typeBuilder = moduleBuilder.DefineType(typeName, TypeAttributes.Public);
foreach (var property in properties) { var fieldBuilder = typeBuilder.DefineField($"_{property.Key}", property.Value, FieldAttributes.Private);
var propertyBuilder = typeBuilder.DefineProperty(property.Key, PropertyAttributes.HasDefault, property.Value, null);
foreach (var property in propertyValues) { dynamicType.GetProperty(property.Key)?.SetValue(instance, property.Value); }
return instance; } } [/code] [b]Und das ist die benutzerdefinierte Spalte, die ich verwendet habe[/b] [code] public class CustomColumn : Column { [Parameter] public string Field { get; set; }
[Parameter] public Type CustomPropertyType { get; set; }
protected override Type PropertyType => CustomPropertyType ?? base.PropertyType;
Ich habe mit meinem Freund einen Conlang erstellt und wir beschlossen, ein Online -Wörterbuch dafür zu machen. Alle Seiten werden dynamisch mit Node.js, Express und Lenker generiert. Die Daten für...
Ich habe mit meinem Freund einen Conlang erstellt und wir beschlossen, ein Online -Wörterbuch dafür zu machen. Alle Seiten werden dynamisch mit Node.js, Express und Lenker generiert. Die Daten für...
Ich habe einen C#-UDP-Socket, von dem ich Daten zu mir nach Hause senden möchte. Der Server-Socket wird bei aws gehostet und der Client ist bei mir zu Hause. Mithilfe des UDPSocket.cs-Beispiels auf...
Ich benötige HTML-CSS-Code (Bootstrap), der die Eingabezeile ganz oben anzeigt, wenn auf die SVG-Schaltfläche geklickt wird. Mein Code wird unten ohne Stil bereitgestellt. Wenn jemand helfen kann,...