Ich füge eine benutzerdefinierte DataGridTextColumn
hinzu, mit der ich ein Ereignis auslösen kann, wenn der Inhalt in dieser Zelle geändert wird.Hinzufügen eines Ereignisses oder Befehls zu DataGridTextColumn
Bitte beachten Sie:
Ich möchte nicht über eine DataGridTemplateColumn
mit diesem benutzen, wie ich das wissen. Ich möchte meine eigene Textspalte erstellen, da es viele Funktionen gibt, die mit der von uns verwendeten Textspalte geliefert werden.
Also entschied ich mich, einfach ein Ereignis zu einem benutzerdefinierten Steuerelement hinzuzufügen - einfach genug. nicht so viel. Nun, es scheint, dass es keine AddHandler
oder RemoveHandler
Methoden gibt.
Bitte erläutern Sie, wo ich falsch liege.
Code:
public static readonly RoutedEvent TextChangedEvent =
EventManager.RegisterRoutedEvent("TextChanged", RoutingStrategy.Bubble,
typeof (RoutedEventHandler),
typeof (DataGridTextChangedEventColumn));
public event RoutedEventHandler TextChanged
{
add { AddHandler(TextChangedEvent, value); }
remove { RemoveHandler(TextChangedEvent, value); }
}
private void AddHandler(RoutedEvent textChangedEvent, RoutedEventHandler value)
{
this.TextChanged += (s, e) => textChangedEvent;
}
Danke.
danke, die einzige Sache ist, wenn ich 'GetBinding' von 'GenerateElement' eingeben, scheint es nicht dort zu sein. Fehle ich ein Mapping? – JamTay317
@ JamTay317 Mein Fehler. Ich kopierte diesen Ausschnitt aus einer Klasse, die ich geschrieben hatte, und ich vermisste diese Methode zu löschen. Wenn Sie möchten, können Sie es weglassen, da das Standardverhalten für DataGridTextColumn darin besteht, einen Textblock zurückzugeben, wenn Sie sich im Ansichtsmodus befinden. – CiccioRocca
danke. Ich habe es gelöscht – JamTay317