2016-08-01 13 views
0

Ich habe ein WPF-Fenster mit 4 schreibgeschützt TextBoxes darin, zu denen ich ein Kontextmenü mit Kopieroption aktivieren muss. Momentan mache ich mit Code hinterher. Aber ich habe gehört, dass es kein guter Ansatz ist.Generisches Kontextmenü für mehrere Steuerelemente in MVVM

<TextBox Name="StepsTextBox" 
     Text="{Binding Steps, Mode=OneWay}" 
     IsReadOnly="True" 
     Click="Copy_click"/> 

-Code-Behind:

private void Copy_click(object sender, RoutedEventArgs e) 
{ 
    StepsTextBox.Copy(); 
} 

Ich versuchte MVVM wie folgt verwendet:

<TextBox.ContextMenu> 
    <ContextMenu> 
     <MenuItem Header="Copy" Command="{Binding OnCopyButtonClick}" CommandParameter="{Binding ElementName=StepsTextBox}"/> 
    </ContextMenu> 
</TextBox.ContextMenu> 

Aber wie kann ich auf dieses Textfeld, aus dem Code, wenn ich es passieren, wie Parameter. Und wie kann ich diesen Code für alle Textfelder generisch halten? Könnte jemand helfen? Danke im Voraus.

private void OnCopyButtonClick(TextBox textBox) 
{ 
    //?? 
} 

Antwort

1

Sie können das integrierte ApplicationCommands.Copy verwenden. Sie müssen nichts implementieren, die Kopierfunktion ist bereits implementiert.

Sie müssen immer noch den Text vor dem Kopieren auswählen, aber das ist beim Kopieren von Text zu erwarten.

+0

Es funktionierte wie ein Charme. Danke vielmals ! – SKN

Verwandte Themen