DataAnnotation-Attribut in Windows Forms – So verwenden Sie das UIHint-Attribut mit WinFormsC#

Ein Treffpunkt für C#-Programmierer
Anonymous
 DataAnnotation-Attribut in Windows Forms – So verwenden Sie das UIHint-Attribut mit WinForms

Post by Anonymous »

Ich habe ein DataGrid mit einer List als Datenquelle. Ich möchte, dass das Datagrid mein benutzerdefiniertes Steuerelement als Editor für die Foo.Value-Eigenschaft verwendet. Ich glaube, dass dies der Zweck des UIHintAttribute ist, aber es hat keine Auswirkung. Ich weiß, dass ich Spalten explizit erstellen und ValueColumn.ColumnEdit = new FooValueEditor(); zuweisen kann, aber ich versuche, eine Menge UI-Code zu umgehen und mich darauf zu verlassen, dass das Raster Spalten aus öffentlichen Eigenschaften ableitet.

Code: Select all

    class Foo
{
public string Name { get; set; }

[UIHint("FooValueEditor", "WinForms")]
public int Value { get; set; }
}

public class FooValueEditor : System.Windows.Forms.TextBox
{
public FooValueEditor() : base()
{
...
}
}
Ich habe versucht, meinem benutzerdefinierten Editor den vollständigen Namespace bereitzustellen. Ich finde viele Beispiele für das in Asp.NET verwendete Attribut, aber der Attributkonstruktor verwendet einen PresentationLayer-Parameter, der:

Kann auf „HTML“, „Silverlight“, „WPF“ oder „WinForms“ gesetzt werden.

Ich hoffe, dass er WinForms unterstützt. Mache ich etwas falsch? Ist das nicht möglich?
Bearbeiten:
Bezüglich Kommentar „Was ist hier ein DataGrid?“. Ich verwende eine Reihe von Steuerelementen von Drittanbietern, von denen ich fälschlicherweise angenommen habe, dass sie von DataGrid geerbt wurden. Es unterstützt die Validierungsattribute (Dies ist ihre Dokumentation für Aps.Net, aber es scheint zumindest teilweise auch für WinForms korrekt zu sein) im selben Namespace, daher hatte ich die Hoffnung, dass UIHint unterstützt werden könnte. Sieht so aus, als ob ich ein Ticket direkt beim Drittanbieter eröffnen sollte, aber in der Zwischenzeit hilft mir die Antwort unten dabei, dies selbst umzusetzen, wenn ich möchte.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post