Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von mfe
Thema: dynamische Code evaluierung
Am Gestern, im Forum: Rund um die Programmierung

Zitat von Palladin007
Was Du mit den Predicates machen willst, geht langfristig in die Hose.
Es gibt/gab zwar ein Framework, das eine LambdaExpression als String de/serialisiert, das könntest Du dann speichern, aber wie gesagt: Das geht in die Hose ^^

Du meinst https://github.com/esskar/Serialize.Linq oder?

PS: Wie gesagt es geht nicht darum wie, die Konfig abgespeichert wird (ob DB oder in Azure App Configuration spielt ja für die eigentliche Anforderung keine Rolle)

Thema: dynamische Code evaluierung
Am im Forum: Rund um die Programmierung

Zitat von BerndFfm

Es gibt Anwendungen wo eine variable Struktur in json serialisiert wird und dann in einer Datenbank gespeichert wird.

Grüße Bernd


Die Struktur des Typen bleibt immer gleich. Ich bräuchte aber so etwas wie eine Funktion die true oder false zurückgibt (die als Parameter den Typ Car übergeben bekommt). Für jede Konfiguration schaut dann die Funktion anderst aus. Als z.B. so etwas:


//konfig liste vom backend
konfig=new List<Konfig> ()
{
      new Konfig() { new Predicate<Car>(s => s.Doors == 1)},
      new Konfig() { new Predicate<Car>(s => s.Typ == "2")},
      new Konfig() { new Predicate<Car>(s =>
            {
                Regex regex = new Regex(".");
                return regex.IsMatch(s.Typ);
            });
      ....
}
//evaluierung welche cars aufgrund der konfig hinzugefügt werden dürfen

            List<Car> cars = GetCars();
            foreach (var car in cars)
            {
                foreach (var konfig in konfig)
                {
                    if(konfig.Predicate.Invoke(car)) //predicate gibt true oder false zurück
                    {
                        yield return car;
                    }
                }
            }


Ich schau mir jetzt noch https://github.com/microsoft/ClearScript an, schaut auch intressant aus.

Thema: dynamische Code evaluierung
Am im Forum: Rund um die Programmierung

Hi,

ich möchte eine Konfiguration möglichst dynamisch und flexibel halten (Diese soll einen konkreten Typ konfigurierbar machen - hier Car). Dazu wird die Konfiguration in einer DB gehalten und dann auf dem Client heruntergeladen und später ausgeführt. Derzeit ist dies alles statisch und soll nun eben flexibler werden. Später soll man die Konfiguration über ein Webinterface bearbeiten können.

Ich hätte zuerst folgenden Lösungsansatz verfolgt: In die Konfig ein Predicate<Car> geben und den Predicate in der DB Serialisieren.


new Predicate<Car>
Leider ist das Serialisieren mit dem BinarySerializer von delegates deprecated. Während der Recherche ist mir noch DLR untergekommen. Gibt es vlt. noch eine weitere Technik die mir hier weiterhelfen könnte? Hätten ihr Tipps für mein Vorhaben? Danke im Voraus.


    class Car
    {
        public int Doors { get; set; }
        public string Typ { get; set; }

        ...
    }

Thema: [Gelöst] - MVVM - SelectedItem für ItemsSource setzen (Memory Problem)
Am im Forum: GUI: WPF und XAML

Setze einen Haltepunkt nach dem Laden der Oberfläche und gib den DataContext vom ComboBox Control aus. Hast du im Output irgendwelche Binding Errors?

Wahrscheinlich passt ein Binding nicht.

Das könnte vlt auch helfen https://get-the-solution.net/blog/ItemsSource%20zu%20UserControl%20hinzuf%C3%BCgen

Thema: Hosting-Angebote für .NET Core unter Linux (kein Root-Server)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

openshift.com - da gibts auch eine free version (natürlich mit einschränkungen)

https://docs.openshift.com/container-platform/3.3/using_images/s2i_images/dot_net_core.html

Thema: Ist es richtig, dass ein DI Framework mir meine 'vorinstallierten' Dependencies direkt injected?
Am im Forum: Rund um die Programmierung

Zitat von LaTino
Zitat von mfe
IoC - Inversion of Control bedeudet, dass du die Steuerung deines Programmablauf abgibst.

Äh, nein, das bedeutet es nicht. Es bedeutet, dass die konsumierende Klasse bestimmt, wie Teilaspekte des Programmablaufs, der in der/den ausführenden Klasse(n) definiert ist, implementiert sind. Die ausführenden Klassen geben die Verantwortung für die Implementierung ab. Dadurch wird der Konsument anstelle der ausführenden Klasse zum steuernden Teil - inversion of control, literally.

Äh... nein und nochmal nein. Es heißt "Statt dass die Anwendung den Kontrollfluss steuert und lediglich Standardfunktionen benutzt, wird die Steuerung der Ausführung bestimmter Unterprogramme an das Framework abgegeben."

Thema: Ist es richtig, dass ein DI Framework mir meine 'vorinstallierten' Dependencies direkt injected?
Am im Forum: Rund um die Programmierung

IoC - Inversion of Control bedeudet, dass du die Steuerung deines Programmablauf abgibst. Du schreibst deinen Programmcode nur noch in die Schablone. Das Framework ruft, dann deinen Programcode auf. Daher auch als Hollywood Prinzip bekannt. Don't call us, we call u.

Dependecy Injection - Bei der Dependecy Injection gibt man die Objekterzeugung ab. Heutige DI Frameworks können Abhänigkeiten bei der Objekterzeugung erkennen und lösen diese in richtiger Reihenfolge und Abhänigkeit auf. Sollte z.B. die Implementierung IDependency eine Abhänigkeit auf Komponente xy haben, muss zuerst diese erzeugt werden. Erst danach kann IDependecy aufgelöst werden.

Die Begriffe gleichzusetzen ist etwas heikel.

Thema: Microsoft Build 2018 - Seattle - 7. bis 9. Mai
Am im Forum: Szenenews

Gab es nichts neues zum XAML Standard? Ich habe dazu nur eine Preview Doc Seite gefunden aber die ist aus 2017.

Thema: Unter Berücksichtigung von MVVM aus meinem Datagrid eine Row auswählen um sie zu löschen per Button
Am im Forum: GUI: WPF und XAML

Zitat von LukeEarthWalker
Danke für den Hinweis auf diesen tollen Eintrag. der hat mir sehr gefallen.
Leider ist das zu allgemein, dass es mein Problem löst, aber trotzdem interessant.
Ich habe das Problem, dass ich nicht weiß wie ich eine Row mit Mouse-Klick auswähle und dann per Button mein Löschkommando ausführe. Es ist dieses Auswählen von einem Datensatz das ich im ViewModel dem Löschen bereitstellen muss.

Wenn das DataGrid oder Control keine passende SelectedItem DependencyProperty (oder der gleichen) hat kannst du auf


zurückgreifen. Schau dir vlt. auch den Anhang vom Beitrag Verlinkungsproblem: System.Windows.Interactivity keine gültige Namespace-ID an.

Bei den Attached Properties geht man so vor, dass man im DependencyPropertyChangedCallBack, vom Control (bei dir das Datagrid) das passende Event registriert und dann z.B. einen Command ausführt.

Thema: .net Core: Umstieg von Windows zu Linux
Am im Forum: Smalltalk

Lies mal die Comments von dem Thread, dann verstehst du vlt. worauf ich hinaus wollte:
https://www.reddit.com/r/microsoft/comments/7o46xb/microsofts_beautiful_cortanapowered_thermostat_is/

Thema: .net Core: Umstieg von Windows zu Linux
Am im Forum: Smalltalk

Zitat von Abt
... leiden extrem unter dem schnellen Entwicklungszyklus, manchmal hab ich den Eindruck Insider oder Beta-Nutzer werden als kostenlose Testressourcen gesehen..
Das sehe ich ähnlich.
Zitat
Zitat
Die derzeitige Politik des Konzerns, "alles was nicht wirtschaftlich ist wird eingestampft", kann ich in keiner weise nachvollziehen.

Welches Unternehmen ist denn verpflichtet, bei Unwirtschaftlichkeit Produkte weiter zu führen? Welches Unternehmen macht das denn Jahrelang?
Das Einstellen von unwirtschaftlichen Produkten ist ja okay, aber dann sollte es zumindest ein Nachfolgerprodukt oder etwas in die Richtung geben. Ansonsten verliert man als Kunde das Vertrauen zum Unternehmen.
Zitat
Der Imageschaden ist ja immens?!

Ich möchte dazu ein Beispiel geben. Ein großes Logistikunternehmen, das eine enge Partnerschaft mit Microsoft hat, ist auf Handheld-Devices angewiesen die noch auf Windows CE basieren. Das Unternehmen will schon seit den letzten Jahren die Geräte durch neue ersetzen, wird aber von Quartal zu Quartal vom lokal ansässigen MS Konzern vertröstet, dass die passenden Geräte noch kommen werden. Inzwischen wurde Windows Mobile aufgegeben und das ist für das Interesse der Gerätehersteller Windows IoT Devices zu bauen, sicherlich nicht förderlich. Für das Logistikunternehmen ist das insofern problematisch, da die komplette Firmeninfrastruktur bisher auf eine homogene MS Landschaft gesetzt hat. Abgesehen vom enormen Zeitverlust ist das Vertrauen der beiden Partner angeknackst. Ich glaube auch, dass das Absägen von Windows Mobile auch der UWP Technologie ziemlich weh getan hat. Keine Ahnung, ob Microsoft irgendwann, in irgendeiner Form im Smartphonebereich wieder zu sehen ist, jedenfalls werden sie dann verdammt gute Überzeugungsarbeit bei den Abnehmern leisten müssen.

Noch ein aktuelles Beispiel aus dem Consumer Bereich: ist der Groove Music Pass. Mit solchen Aktionen verliert man einfach das Vertrauen der Konsumenten für zukünftige Produkte.
Zitat
Zitat
Beim XAML Standard scheint irgendwie auch nichts weiter zu gehen.

Was genau erwartest Du denn? XAML hat im mobilen Sektor fast nichts zu melden - wieso dem Ganzen eine riesen Priorität geben?
UWP kam weder beim Endkunde noch in Firmen wirklich an.

Firmen wollten lieber Webseiten statt UWP Apps (Web ist nämlich viel einfacher zu veralten (und günstiger)) für den Client und von Windows Mobil-Geräten sind Unternehmen auch weit weg.

Mit .NET Core und ASP.NET Core gibt es eine gut aufgestellte Technologie für Backends. Also wenn es irgendwie geht, baut man sowieso eine Web Applikation mit einem ASP.NET Core Backend.
Wenn man aber eine native Anwendung mit einer Oberfläche (keine App) für MacOS bauen will, sieht es sehr dürftig aus. Es gibt zwar 1-2 Projekte die was in die Richtung machen, aber das sind keine offiziellen Projekte von MS und daher weiß man noch nicht in welche Richtung sich das entwickeln wird. Wir haben seit den letzten zwei Jahren immer mehr Kunden die keine MS Infrastruktur vorweisen können.

Thema: .net Core: Umstieg von Windows zu Linux
Am im Forum: Smalltalk

Ich werde, wenn es mir als Entwickler möglich ist, ebenfalls versuchen Abhängigkeiten von MS Produkten zu eliminieren. Die derzeitige Politik des Konzerns, "alles was nicht wirtschaftlich ist wird eingestampft", kann ich in keiner weise nachvollziehen. Der Imageschaden ist ja immens?! Als Business Kunde konnte man sich sicher sein, dass es das MS Produkt, oder besser die Plattform noch lange Jahre erhalten bleiben und supported wird. Wenn dann die Consumer aufgrund dessen schon anfangen MS Produkte ausschließen, ist das mehr als bedenklich.

UWP verliert bei mir persönlich immer mehr an Reiz dafür etwas zu Entwickeln. Da bau ich doch gleich lieber eine Xamarin App.
Beim XAML Standard scheint irgendwie auch nichts weiter zu gehen.
Das einzig was schon immer interessant war und auch die nächste Zeit bleiben wird, ist .NET Core + Azure. Die alternativen IDEs werden auch immer besser und somit brauch ich eigentlich gar keine Windowsumgebung mehr.

Thema: Muster in einem string suchen, das mehrmals vorkommt und anschließend formatiert ausgeben!
Am im Forum: Grundlagen von C#

Der Vollständigkeitshalber:


[Artikel] Regex-Tutorial
On-the-fly Regex-Tester: Regex-Lab

Thema: Typenabhängige Ausführung von unterschiedlichen Klassen über Dictionary
Am im Forum: Grundlagen von C#

Leider sehe ich die Frage nicht eindeutig.

Ich hätte aber gemeint du könntest evtl. was mit dem Adapter-Pattern anfangen.

Mit dem Dictionary kannst du dahingehend auch schon einiges machen.

Eine möglicher Ansatz wäre z.B:

Dictionary<Typ, IAdapter> _AdapterDictionary
_AdapterDictionary.Add(typeof(BookAmazonType),AdapterAmazon);
_AdapterDictionary.Add(typeof(BookStadtBibliothekType),AdapterStadtBibliothek);

Für jedes Interface das gewrappt werden muss erstellst du einen Adapter. Z.b. AdapterAmazon,AdapterStadtBibliothek,AdapterC... die IAdapter implementieren.

Im _AdapterDictionary hinterlegst du für jeden Typ die passende Adapterinstanz. Zugriff könnte dann so aussehen.

_AdapterDictionary[CustomTyp.GetType()].GetBook("");

Thema: Microsoft Ignite 2017 Orlando - Live Stream
Am im Forum: Szenenews

Für mich interessant waren:
- Azure Stack ist für Kunden die Cloud-Skeptiker sind interessant, preislich aber nur für große Firmen relevant
- Das SQL Server Graph Feature schaut auch ziemlich nice aus. Der Linux support
ist auch top

Thema: Microsoft Ignite 2017 Orlando - Live Stream
Am im Forum: Szenenews

Was gibt es da spannendes?

Thema: UserControl - Dokumentation/Leitfaden
Am im Forum: GUI: WPF und XAML

Zitat von robin_
Oder anders gesagt: Mein UserControl liegt in einer ListView, an die gebunden wird. Deshalb findet das Binding in meinem Control die Eigenschaft nicht mehr (denn der DataContext ist in dem Fall das Objekt der ObservableCollection<objekt> / Item des ListCollectionView).

Ich denke, dein Problem wird hier beschrieben:
http://get-the-solution.net/2009/02/20/itemssource-zu-usercontrol-hinzufugen/

Thema: Web.config und ConnectionString Verschlüsselung
Am im Forum: Web-Technologien

Eine Frage dazu:

Würde etwas dagegen sprechen wenn man einen eigenen Windows-Account anlegt, der von der WebApp verwendet wird (AppDomain im IIS) und dieser gegen die DB fährt? Setzt natürlich vorraus, dass der AppDomain Prozess Zugriffsrechte auf die DB hat.

Thema: MyCsharp hat kein Https!
Am im Forum: Wünsche und Kritik

Super! Freut mich.

Thema: INotifyPropertyChanged "Eine Ebene tiefer"
Am im Forum: GUI: WPF und XAML

Zitat von Kriz
Also muss dann die Klasse Vertrag auch von INotifyPropertychanged [...]
implementieren. Ja.

Thema: INotifyPropertyChanged "Eine Ebene tiefer"
Am im Forum: GUI: WPF und XAML

Du musst in der Property im Setter auch die Methode OnPropertyChanged(propertyname) aufrufen (In der Klasse Vertrag).

Thema: Was ist CORS, wie funktioniert es und welchen Vorteil bringt es?
Am im Forum: Web-Technologien

Stell dir vor, jemand konnte erfolgreich JavaScript Code in deine Seite einschleusen. Nun kann dieser weiteren Code über Ajax nachladen. Das wird mit den CORS teilweise verhindert. Der Browser schickt ein Request mit orign x.at. Der Backend Antwortet unter y.at. Das kommt dem Browser seltsam vor und blockiert den Request.

Thema: In XAML auf Instanz von ViewModel zugreifen
Am im Forum: GUI: WPF und XAML

Den DataContext bei jedem Control einzeln zu setzen ist die falsche Herangehensweise.

Die ListBox, ListView haben dafür z.B. die DependencyPropertie (DP) ItemsSource vorgesehen.

Darauf bindest du dann deine Liste welche du im ViewModel hälst.

Thema: In XAML auf Instanz von ViewModel zugreifen
Am im Forum: GUI: WPF und XAML

Zitat von robin_
Über DataContext hätte ich jetzt einem Sub-Control sein ViewModel zugewiesen.. Mittels StaticResources.
Eine StaticResource ist nicht notwendig. Die Controls erben alle den DataContext vom Window. Du verwendest für dein Vorhaben also ein normales Binding.

[...]
<UserControl DataContext={Binding SubVM} />

Thema: In XAML auf Instanz von ViewModel zugreifen
Am im Forum: GUI: WPF und XAML

Zitat von mfe
Besser ist du verwaltest die VMs im Codebehind.

Das kannst du z.B. so machen:
Zitat von mfe
Du hast in deinem WPF Projekt eine App.xaml.cs. In dieser überschreibst du die OnStartup Methode. Dort drinnen erzeugst du die Window als auch deine ViewModel Klassen Instanz(en). Beim Window die Show Methode aufrufen nicht vergessen! [...] In der App.xaml entfernst du den Eintrag StartupUri="Window1.xaml". Damit verhinderst du, dass das Window nicht vom "XAML" erzeugt wird.
[Source]

Du hast ja gesagt, dass du so etwas wie ein Haupt-ViewModel hast die die anderen ViewModels verwaltet.

Du könntest also z.B. alle ViewModel-Instanzen in der Startup Methode erzeugen und dann via Konstruktor dem Haupt-ViewModel übergeben.

Thema: In XAML auf Instanz von ViewModel zugreifen
Am im Forum: GUI: WPF und XAML

Instanzen von Konstruktoren mit Überladungen im XAML zu initialisieren geht meines Wissens nicht. Du brauchst also immer einen Parameterlosen Konstruktor.

Generell solltest du ViewModelinstanzen im XAML nicht erstellen. Das macht man meistens nur bei Beispielprojekten (weil bequem und schnell).

Besser ist du verwaltest die VMs im Codebehind. In größeren Projekten übernehmen das ViewModel Locator Services in kombination mit Dependency Injection Frameworks wie MEF (wird z.b. von Visual Studio selbst verwendet), Unity um mal zwei zu nennen.

Thema: MyCsharp hat kein Https!
Am im Forum: Wünsche und Kritik

Hi,

der Titel sagt schon alles.

https://doesmysiteneedhttps.com

Thema: Verlinkungsproblem: System.Windows.Interactivity keine gültige Namespace-ID
Am im Forum: GUI: WPF und XAML

Bei deinem angehängten DropBox Projekt hast du das falsche Nuget Package installiert. Das ist bei mir auch nicht lauffähig. Das Nuget Package ist übrigens auch nicht von Microsoft veröffentlicht worden.

Wenn du das Nuget Package "Expression.Blend.Sdk" von Microsoft installierst, geht es.

Thema: Verlinkungsproblem: System.Windows.Interactivity keine gültige Namespace-ID
Am im Forum: GUI: WPF und XAML

Zitat von robin_
Fehler:
Zitat
Der Name "Interaction" ist im namespace xxx nicht vorhanden.
Was sagt die IntelliSense im XAML Editor wenn du "<i:" eingibt? Oder schau besser in der Projektmappe unter den Referenzen nach. Doppelklick bei "System.Windows.Interactivity"

1.) Im Object Browser kannst du alle vorhandenen Klassen, Members usw. durchsuchen. Du musst darin alle Klassen finden die du im XAML verwenden möchtest.
2.) Wenn sich die "System.Windows.Interactivity" in einem packages Ordner befindet handelt es sich um das NuGet package das du mit Install-Package Befehl heruntergeladen hast. Sollte die in einem anderen Ordner liegen, wäre es möglich, dass auf eine falsche dll verwiesen hast.
Soweit ich mich erinnern kann wird mit Visual Studio 2015 und Blender die Interactivity Bibliothek mit ausgeliefert. Es kann also sein, dass du die Blender Dll einmal mittels Add Reference -> Add Assemblies -> Extensions und einmal per NuGet Package hinzugefügt hast. Das führt dann zu Fehler.
Zitat von robin_
Ich habe einer Anleitung von der NuGet-Seite... Dort habe ich mit
Install-Package Expression.Blend.Sdk -Version 1.0.2
in der NuGet-Console versucht, das Package hinzuzufügen - was auch klappte.
Ich kann noch ein passendes Paket empfehlen: Expression.Interaction
Damit kannst du, dann noch mehr im XAML anstellen. Beispiel siehe Anhang und unteren XAML Code:

            <TextBlock Text="click me ;)">
                <i:Interaction.Triggers>
                    <i:EventTrigger EventName="MouseDown">
                        <i:InvokeCommandAction Command="{Binding Path=CloseCommand}" CommandParameter="textbox" />
                    </i:EventTrigger>
                    <i:EventTrigger EventName="MouseEnter">
                        <ie:ChangePropertyAction PropertyName="Background" Value="Yellow" />
                    </i:EventTrigger>
                    <i:EventTrigger EventName="MouseLeave">
                        <ie:ChangePropertyAction PropertyName="Background" Value="Green" />
                    </i:EventTrigger>                    
                </i:Interaction.Triggers>
                <Button Content="click me for setting the focus" Background="LightGoldenrodYellow">
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="Click">
                            <ie:CallMethodAction  TargetObject="{Binding}" MethodName="bla" IsEnabled="True" />
                        </i:EventTrigger>   
                    </i:Interaction.Triggers>
                </Button>
                <TextBox x:Name="texbox"  Text="" Width="200">
                    <i:Interaction.Triggers>
                        <ie:DataTrigger Binding="{Binding Path=IsMouseOver ,UpdateSourceTrigger=PropertyChanged, RelativeSource={RelativeSource AncestorType={x:Type TextBox}}}" Value="True">
                            <ie:ChangePropertyAction PropertyName="Background" Value="Blue" />
                        </ie:DataTrigger>
                        <ie:DataTrigger Binding="{Binding Path=IsMouseOver ,UpdateSourceTrigger=PropertyChanged,RelativeSource={RelativeSource AncestorType={x:Type TextBox}}}" Value="False">
                            <ie:ChangePropertyAction PropertyName="Background" Value="Purple" />
                        </ie:DataTrigger>
                    </i:Interaction.Triggers>
                </TextBox>
            </TextBlock>
Zitat von robin_
Hast du vielleicht eine bessere Alternative, auf das Event im ViewModel zu reagieren? (Ohne Code in der XAML-Code-behind).
Eine bessere Möglichkeit gibt es nicht. Man kann sich Helper Klassen erstellen wie z.B. hier MVM: Event aus UserControl mit Command binden. Die kann man dann noch etwas allgemeiner ausführen, aber dann hat man früher oder später fast das gleiche wie das vom Expression.Blend.Sdk.

Thema: MVM: Event aus UserControl mit Command binden
Am im Forum: GUI: WPF und XAML

Ich finde die Variante von ThomasE. legitim sowie die Verwendung der Interactions vom Blend SDK.

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
        xmlns:local="clr-namespace:WpfApp1"
        mc:Ignorable="d" 
        Title="MainWindow" Height="350" Width="525">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Closing">
            <i:InvokeCommandAction Command="{Binding Path=CloseCommand}" CommandParameter="{Binding}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>

Es macht durchaus Sinn für Events, bei denen man öfter ein Command ausführen will, eine Helper Klasse mit Attached Properties anzulegen. Die Helper Klasse kann man ja in mehreren Projekten wiederverwenden. Die Zeitersparnis und der Komfort zahlt sich jedenfalls aus.
Zitat
Wenn ich dies mit meinem Event aus meinem UserControl auch tue, funktioniert nichts.
Kannst du das bitte präzisieren? Wird der Command nicht ausgelöst?
Zitat
Wie kann ich in einem UserControl ein Event bauen...
RoutedEvent - https://msdn.microsoft.com/de-de/library/ms752288(v=vs.110).aspx
Zitat
, damit ich diesen mit einem Command-Befehl in mein ViewModel bringen kann?
Keine Ahnung was du damit meinst, ich kann es nur erahnen. Jedenfalls wenn du ein RoutedEvent erstellst, kannst du dieses dann im i:EventTrigger EventName="DeinCustomRoutedEvent" angeben.

PS: Passt zum Thema: https://docs.microsoft.com/en-us/dotnet/framework/wpf/advanced/routed-events-overview#routing-strategies