2010-08-05 3 views
1

У меня есть TextBox в моем WPF приложение, которое я добавил событие Paste к использованию:Как имитировать Вставить в текстовом поле WPF?

DataObject.AddPastingHandler(elm, new DataObjectPastingEventHandler(OnPaste)); 

Теперь я хочу, чтобы вызвать OnPaste событие из C# код. Как я могу это сделать? Я попытался вызвать функцию Paste() в элементе управления. Текст будет вставлен в контроле, но OnPaste событие не происходит ..:

private static void Foo(TextBox textBox, string pastedText) 
{ 
    Clipboard.SetData(DataFormats.Text, pastedText); 
    textBox.Paste(); 
} 

ответ

3

Призовите ApplicationCommand Paste:

ApplicationCommands.Paste.Execute(this, pastedText) 

Пожалуйста, обратите внимание, что это не будет работать в режиме частичного доверия!

+0

Thx. Код, который я предложил в вопросе, действительно работает тоже. Мой плохой. Проблема заключалась в том, что обработчик вставки должен быть установлен вручную, и я установил его в некоторой части кода, который не был запущен в моем модульном тесте. – stiank81

Смежные вопросы