Auf Anraten erstelle ich ein neues Thema.
Ich möchte bei 7 Textboxen den Inhalt bei Klick darauf in die Zwischenablage kopieren.
Dafür habe ich nun alle Textboxen mit Hyperlink verschachtel, die jetzt alle so aussehen.
<TextBlock Focusable="True">
<Hyperlink Focusable="True" Command="ApplicationCommands.Copy" >
<TextBlock Name="tb_teamViewerID" Focusable="True" />
</Hyperlink>
</TextBlock>
Ich weiß, dass ich noch einen Denkfehler habe, allerdings komme ich nicht darauf wo dieser liegt.
"ApplicationCommands" sind keine Commands mit Funktionalität in dem Sinne.
Es sind stattdessen global zugänglicher Command-Properties, die aber noch Funktionalität benötigen.
Der Sinn ist, dass Du irgendwo (z.B. am Window) dem Close-Command eine Funktionalität zuweisen und danach überall nutzen kannst.
Am besten Du schreibst einen eigenen Command, der den CommandParameter in die Zwischenablage schreibt. Das kann man genauso static machen, dann kannst Du das ganz ohne ApplicationCommands.Copy nutzen.
public class MyCommands
{
public static CopyCommand Copy { get; } = new CopyCommand();
}
public class CopyCommand : ICommand
{
public void Execute(object parameter)
{
// "parameter" kopieren
}
}
<Hyperlink Command="{x:Static local:MyCommands.Copy}" CommandParameter="{Binding Text, ElementName=tb_teamViewerID}">
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.
Danke, damit hat es nun funktioniert.
Allerdings steige ich noch nicht genau durch, wie und was. Könntest du mir bitte ein Tutorial empfehlen welches sich mit dieser speziellen Thematik beschäftigt?
Ich kenne kein Tutorial dazu, nur das, was man (unter anderem auch von Microsoft) findet, wenn man Google (oder eine Suchmaschine deiner Wahl) benutzt.
Ich habe einfach ganz naiv nach "wpf ApplicationCommands.Copy" gesucht und mehr als genug Informationen gefunden.
Ansonsten lies ein gutes Buch zu WPF oder C# allgemein, da ist eventuell WPF auch mit dabei.
Z.B. das ist ziemlich gut und befasst sich auch mit WPF: http://openbook.rheinwerk-verlag.de/visual_csharp_2012/
Davon gibt's auch eine neuere aber kostenpflichtige Version.
NuGet Packages im Code auslesen
lock Alternative für async/await
Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.
Werde mich mal weiter belesen.
Eine Frage hätte ich noch. Der Text wird ja nun in die Zwischenablage kopiert, zeitgleich sollte nun in der Statuszeile ein "kopiert" erscheinen.
Kann ich das in der Execute Methode mitgeben? Also das ich in der MainWindow.cs Datei eine Methode erstelle:
private void OutputStatus()
{
statusbar.text = "kopiert";
}
Und dann im Execute aufrufen? Oder gibt es hierfür auch einen anderen Weg in WPF?
Was du brauchst, ist ein ViewModel, das den aktuellen Status deiner Benutzeroberfläche repräsentiert. Dort gibt es dann eine Eigenschaft mit dem Status-Text, den du an deine StatusBar binden kannst.
Weeks of programming can save you hours of planning