2010-08-13 9 views
3

이상하게도 다른 컨트롤과 로직을 깔끔한 작은 패키지에 묶어 놓은 UserControl이 있습니다. string을 받아들이고 마법을 사용하여 사용자에 대한 결과를 표시하는 Text 속성이 있습니다. 굉장해.내 UserControl에서 클립 보드의 붙여 넣기를 어떻게 받아 들일 수 있습니까?

텍스트 상자에서 해당 텍스트를 가져옵니다. 사용자가 내 UserControl의 DP에 바인딩 된 텍스트 상자의 클립 보드에서 텍스트를 붙여 넣습니다.

중간 사람을 잘라내 내 UserControl 내에서 붙여 넣기를 받아들이기로하고 싶습니다.

첨부 된 이벤트 인 DataObject.Pasting을 이미 사용해 보았지만 작동하지 않는 것으로 보입니다.

어떻게 하시겠습니까?


내 현재의 해결책으로 내 자신의 질문에 답변했지만 솔직히 "냄새"입니다. 누구든지 더 나은 답변을 가지고 있다면 추가하십시오. 제대로 작동한다면 더 잘 선택하십시오.

답변

2

내 뇌가 발사되었습니다. Command Bindings. 이제 누군가가 붙여 넣으려고 할 때 그것을 알 수 있습니다.

XAML :

<UserControl.CommandBindings> 
    <CommandBinding 
     Command="Paste" 
     Executed="CommandBinding_Executed"/> 
</UserControl.CommandBindings> 

가 (나쁜 코드를 변명,이 지금 작업려고) 그리고 이벤트 핸들러 :

try 
{ 
    var text = Clipboard.GetData(DataFormats.Text) as string; 
    if (string.IsNullOrWhiteSpace(text)) 
     return; 
    Lines = new Lines(text); 
    e.Handled = true; 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(ex.Message, "Paste failed", MessageBoxButton.OK); 
} 

이 냄새, IMHO. 그러나 나는 이것을 어떻게 다룰 것인지 잘 모르겠습니다.

관련 문제