Sind mehrere CommandParameter anzugeben möglich?

  • WPF MVVM
  • .NET (FX) 4.5–4.8

Es gibt 24 Antworten in diesem Thema. Der letzte Beitrag () ist von kafffee.

    Sind mehrere CommandParameter anzugeben möglich?

    Guten Morgen und ein gutes Neues euch allen zusammen :)

    ich habe folgenden Code:

    XML-Quellcode

    1. <Border>
    2. <Border.InputBindings>
    3. <MouseBinding MouseAction="LeftClick" Command="{Binding DataContext.InterpretZuPlaylistZufügen, ElementName=lstInterpreten}" CommandParameter="{Binding}"/>
    4. </Border.InputBindings>[...]


    Nun wär es total cool, wenn ich mehrere Commandparameter als Argument übergeben könnte, da könnte ich mir eine Menge Code und Nerven sparen.

    Genauer gesagt will ich entweder eine 0 oder eine 1 als Integer vom XAML aus übergeben, davon abhängig ob ein bestimmter Radiobutton IsChecked = True ist, also mit ElementBinding...

    Ist das machbar bzw. wie mache ich das oder gibt es sonstige Alternativen?

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „kafffee“ ()

    Hi,
    weis jetzt grad nicht ob ich dich richtig verstanden habe.
    Aber binde doch die RadioButtons an ein Property im ViewModel und in der Command Methode fragst dieses Property ab welchen wert es hat und reagierst drauf.
    "Hier könnte Ihre Werbung stehen..."
    Auch wenn ich sehr wahrscheinlich nicht helfen kann: Wieviele RadioButtons hast Du und wieviele können davon gleichzeitig gewählt werden, um Deine hiesige Auswahl zu treffen?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @MichaHo

    Ja das war der Plan B. Ich hatte vergessen zu erwähnen, dass ich den Command von verschiedenen Stellen im Programm aufrufen will. Entweder dann gebunden an den RadioButton oder fix mit 0 oder 1.
    Dann müsste ich noch (!) eine Methode erstellen und irgendwie abfragen, von wo aus aufgerufen wird, da das Programm dann wissen muss, ob es mit dem Wert aus den RadioButtons arbeiten soll oder eben fix mit 0 oder 2. Und das möchte ich nicht, denn zu viel Code, da dieses Problem kein Einzelkind werden wird...

    @Nofear23m
    Ist nur eine Group mit zwei RadioButtons, die entweder oder selektiert werden können, also nur einer selektiert. Als Integer deswegen, weil ich mit dem Rückgabewert einen Index mit 0 oder 1 ansteuern will.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kafffee“ ()

    Hallo

    Also in diesem Fall muss ich mich MichaHo anschliessen und doch darum bitten das du evtl. mit einem Bild Beschreibst was du vor hast. Oft sieht man den Wald nicht mehr und die bessere Lösung liegt soooo nah.

    Grüße
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Hi. @kafffee

    Ich sage mal "NEIN".

    Aber es gibt eine andere Lösung dafür, indem du einen "Gesamtzustand" der Parameter in einer Varibale/Methode zusammenfasst.

    Beispiel:
    3 Radiobuttons habe einen Zustand in deinem ViewModel, dazu noch 5 Checkboxen mit Ihren Zuständen und eine TextBox mit Text.

    Also würde ich dann nur eine Methode aufrufen, die bei allen Änderungen "getriggert" wird.

    Also deine Commands rufen im ViewModel eine Methode auf, die alle Zustände weiter gibt.

    Ein andere Lösung ist nicht Möglich, weil Commands nur einen Parameter haben können.
    Daraus folgt das es keinen CommandParameter braucht um "kombinierte Werte" zu verarbeiten.
    Denn "kombnierten Werte" müssen auch verarbeitet werden.
    Ist zwar umständlich, aber ich mach das häufiger...

    Mal ein Beispiel:

    Ich habe ein ListBox darin sind Objekte die eine Bilddatei representieren.
    Ein bild hat einen User, der das Bild hochgeladen hat => "String"
    Ein Bild hat Größenangeben => 2x "Integer" (breite + hoehe)
    Ein Bild hat ein Upload-Datum => DateTime

    Jetzt habe ich eine Filterfunktion oberhalb der ListBox implementiert.

    Sobald der User eines der Felder ändert wie MaximaleBreitederBilder und z.B. Username, triggert es jeweils eine Methode.
    Diese Methode muss leider alle Werte prüfen, auch wenn der Username leer ist oder andere Werte...

    Wenn gemischte DatenTypen verwendet werden, dann sowieso alles in der "grtiggerten" Methode nochmals "validieren" um ein Gesamtresultat zu erhalten.
    Dann erst werden nur die Treffer angezeigt und alles andere wird "gefiltert".
    Es muss den Objekten (ja, jedes in der Liste) einen Zustand, ob gefiltert oder nicht gefiltert, gegeben werden.

    Bei mir sind die CommandParameter nur der Wert des Controls im Beispiel der Breite-Wert o.ä. und das Command Triggert dann die "Validierungs-Funktion" und die wiederum triggert den Filtrierungszustand in der Liste.

    Jetzt, bin ich aber getriggert... ?( :S 8o

    c.u. Joshi aus HH hab dich lieb oh du mein Kaffee (Jegliche Namensgleichheiten sind nur fiktiv...) :)
    Naja, um einen Command an mehreren Stellen aufzurufen gibt es ja auch Lösungen.
    Entweder Du erstellst den Command als Klasse und definierst darin alles was Du benötigst und kannst dann auch Parameter übergeben.
    Oder Du nutzt einen Service der die Methoden bereit hält die Du in einem/mehreren Commands benötigst.
    Oder geht natürlich auch das Du den Zustand der Radio´s in einer globalen Variablen (Ich nutze für solch Sachen immer Store Klassen mit Interface) hälst und dann von überall abfragen kannst.
    "Hier könnte Ihre Werbung stehen..."

    Nofear23m schrieb:

    Oft sieht man den Wald nicht mehr und die bessere Lösung liegt soooo nah.



    Ja das kenn ich nur zu gut... Daher anbei mal die zwei Screenshots. Wie du siehst auf dem Screenshot der Suche kann man unten Plattendeck 1 oder 2 aussuchen. Dann kann man in der Liste mit den Interpreten auf das Plus drücken, um alle Musiktitel des Interpreten der Playlist zuzufügen, entweder die der Playlist von Plattendeck 1 oder halt Plattendeck 2. Oder man drückt auf das Play-Symbol, um direkt abzuspielen, auch entweder auf Deck 1 oder 2. Soweit so gut und noch kein Problem.
    Wenn du dir jetzt aber den Screenshot mit den zwei komplett identischen Plattendecks anschaust, dann besitzen beide z.B. auch wieder einen Playbutton. So, nun soll natürlich, wenn man einen der beiden PlayButtons in der Plattendeckansicht drückt, genau die gleiche Methode aufgerufen werden, wie wenn man von der Ansicht "Suche" das kleine Play-Symbol drückt. Nur eben sollen dann logischerweise nicht die Radiobuttons abgefragt werden, sondern, wenn man das Play von Deck 1 drückt, der Index 0 genommen werden, und bei Deck2 eben 1. Ich denke du verstehst den Punkt. Genauso soll das dann natürlich mit jeder anderen Schaltfläche in der Ansicht "Plattendecks" gemacht werden. Ich denke man erkennt was für eine Heidenarbeit das wäre....

    MichaHo schrieb:

    Entweder Du erstellst den Command als Klasse und definierst darin alles was Du benötigst und kannst dann auch Parameter übergeben.



    Das klingt interessant für mich. Kannst du das mal näher erläutern?

    Joshi schrieb:

    Aber es gibt eine andere Lösung dafür, indem du einen "Gesamtzustand" der Parameter in einer Varibale/Methode zusammenfasst.


    @Joshi
    Also ich versteh noch nicht genau wie du meinst, aber ich les mir das nochmal in Ruhe durch...
    Bilder
    • screenshot valp plattendecks.png

      874,71 kB, 2.560×1.080, 59 mal angesehen
    • screenshot valp suche.png

      137,75 kB, 2.560×1.080, 62 mal angesehen
    Ich dachte mir sowas in der Art.

    ​Wenn du dir jetzt aber den Screenshot mit den zwei komplett identischen Plattendecks anschaust

    Identisch in der Optik. Ja.
    Aber du hast hier wieder nen Denkfehler. Jedes Plattendekc für sich sollte eine eigene Instanz eines (vor mir auch gleichen) ViewModels sein.
    Dann hast du das PRoblem der Unterscheidung erst garnicht. Jede ViewModel-Instanz mache ihre Arbeit für sich und du musst dir um die "Unterscheidung" erst keine Gedanken machen.
    Das Prinzip der ViewModels musst du verinnerlichen, ich weis, es ist Anfangs sehr verwirrend sehr viele ViewModel untereinander zu Verschachteln aber das ist notwendig um solche Probleme erst garnicht zu bekommen.

    So, jetzt stelle mich mal meine "Custom-MVVM-MessageBox" Implementierung in den anderen Thread.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    @ErfinderDesRades

    Die Plattendecks können zur Laufzeit beide simultan aktiv sein, daher auch unten im Bild der Crossfader zur Überblendung zweier Tracks...
    Zwei Parameter: Einer zur Übergabe des Interpreten (bzw. der ganzen MP3-INfos), einen zur Übergabe des Plattendecks...

    @Nofear23m

    Das hört sich echt super an.

    Momentan habe ich in meinem jugendlichen Leichtsinn für die View der Plattendecks noch keine zwei UCL, sondern nur ein UCL, mit zweimal fast dem identischen (per Copy/Paste eingefügtem) XAML, abgesehen von ein paar Tooltips. Das würde ich ändern, dann würden sich nach meinem Verständnis automatisch zwei Instanzen des ViewModels bilden, wenn ich auch zwei Instanzen (nennt man das bei den Views in diesem Fall auch Instanzen?) des Views hab oder?
    Solange die für sich arbeiten gut, das verstehe ich, sollte das funktionieren. Was aber wenn ich jetzt wie gesagt von aussen, d.h. dem ViewModel der Suche einen Track zufügen will, dann muss mein Programm ja trotzdem irgendwie wissen, an welche Instanz des Plattendecks-ViewModels das MP3 übergeben werden soll.... Packst du dann die zwei Instanzen der ViewModels in ein Array?

    Ein weiterer Punkt ist die Ansprache meiner bass.dll, welche ich zum Abspielen benutze, ich hoffe dass die sich dann die Plattendecks nicht in die Quere kommen, das müsste ich dann halt ausprobieren. Das Abspielen funktioniert so, ohne Instanziierung, wenn ich das richtig sehe, nur falls es jemand interessiert:

    VB.NET-Quellcode

    1. Bass.BASS_Init(1, 44100, BASSInit.BASS_DEVICE_CPSPEAKERS, IntPtr.Zero, Nothing)
    2. streamA = Bass.BASS_StreamCreateFile("C:\Test.mp3", 0, 0, BASSFlag.BASS_STREAM_AUTOFREE Or BASSFlag.BASS_STREAM_PRESCAN) 'für jedes Plattendeck wird in streamA bzw. streamB dann ein Integer zur Identifizierung des Abspielkanals hinterlegt
    3. Bass.BASS_ChannelPlay(streamA, False)


    Aber so wie ich das sehe sollte das kein Problem darstellen...

    Jetzt schau ich mir aber mal deine Messagebox an und guck, was ich damit anfangen kann...


    PS: Kann es sein, dass bei der VB-Paradise-Website irgendwas geändert wurde, bei mir funktioniert das mit den Benachrichtigungen in letzter Zeit nicht so wie es soll und war...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kafffee“ ()

    @kafffee
    Das mit der Command Klasse meine ich so:
    Du kannst ja entweder eine Klasse nutzen die ICommand implementiert (meist RelayCommand oder DelegateCommand).
    Damit erstellst Du dann im ViewModel einen Command und weist diesem eine Methode zu die er ausführen soll.
    Wenn Du einen Command aber in mehreren ViewModels benötigst, hättest Du Code duplizierung, vor allem dann, wenn die gleiche Methode ausgeführt wird.
    Also kannst Du Dir eine Klasse erstellen, die auch ICommand implementiert aber als Parameter nicht eine Methode entgegen nimmt, sondern ein ViewModel, oder einen Service oder schlicht Eigenschaften.
    Ein NavigateCommand wäre so ein Beispiel. Die Klasse hieße dann nicht RelayCommand sondern MeinCommand als Beispiel (oder NavigateCommand).
    Ist bei MVVM beides möglich. Sieht man auch viel im Netz wenn man sich MVVM Projekte anschaut.
    Ich persönlich gehe meist den Weg eines RelayCommand.
    "Hier könnte Ihre Werbung stehen..."
    Hallo

    So wie ich das sehe wenn ich mir den Screenshot ansehe hast du ein ViewModel (Ich nenne es mal "Mischpult")
    Darin hast du drei Eigenschaften "DeckLeft" und "DeckRight" vom Typ - ich nenne es mal "DeckViewModel" - und dann noch Crossfader as z.b. integer.

    Und genauso würde ich die View auch machen. Zwei Usercontrols. uclDeck und uclPult. Innerhalb des Pults ein Grid mit zwei Spalten und zwei Zeilen.
    In den Zwei spalten befinden sich die zwei Decks und unten in Row="2" mit ColumnSpan="2" dann mittig der Crossfader.

    Die zwei Decks sind dann gebunden mit z.b. DataContext="{Binding DeckLeft}" und der Crossface direct mit z.b. Value="{Binding CrossFaderValue}".

    So ist das Sauber aufgebaut. Je mehr du das verschachtelst desto "sauberer" und übersichtlicher bleiben deine ViewModels.

    Bez. Zugriff kannst du dir sicher schon denken wie das läuft. Du hast ja von PultVm problemlos Zugriff auf deine zwei DeckVm.
    Was das mischen mit der Bass.dll angeht musst du selbst schaun, da habe ich keinen schimmer, noch nie was damit gemacht.

    Grüße
    Sascha
    Bilder
    • DeckVms.png

      22,7 kB, 1.510×887, 55 mal angesehen
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Ich hab da drei Verständnisfragen:

    Nofear23m schrieb:

    So wie ich das sehe wenn ich mir den Screenshot ansehe hast du ein ViewModel (Ich nenne es mal "Mischpult")
    Darin hast du drei Eigenschaften "DeckLeft" und "DeckRight" vom Typ - ich nenne es mal "DeckViewModel" - und dann noch Crossfader as z.b. integer.


    Du meinst sollte (!) ich haben oder habe ich? Im Moment hab ich in dem ViewModel noch gar nichts ausser einer Property Playlist, die an die Playlists unten gebunden ist. Momentan ist es jetzt auch noch so, dass, wenn ich natürlich was zu der Playlist adde, es auf beiden Decks angezeigt wird...

    Nofear23m schrieb:

    Und genauso würde ich die View auch machen. Zwei Usercontrols. uclDeck und uclPult. Innerhalb des Pults ein Grid mit zwei Spalten und zwei Zeilen.
    In den Zwei spalten befinden sich die zwei Decks und unten in Row="2" mit ColumnSpan="2" dann mittig der Crossfader.


    Meinst du, dass ich dann von den Decks zwei leicht verschiedene Dateien/UCLs haben sollte, oder nur eine Datei, davon aber halt das Gleiche, die ich dann jeweils rechts/links einbinde?

    Nofear23m schrieb:

    Bez. Zugriff kannst du dir sicher schon denken wie das läuft. Du hast ja von PultVm problemlos Zugriff auf deine zwei DeckVm.


    Ja der Zugriff an sich ist mir klar, bisher hatte ich das so:

    LayerViewModel.ViewModelPlattendecks.Playlist.Add(item)

    Ich kann ja durch mein LayerViewModel zentral auf jedes beliebige ViewModel zugreifen, das nur nebenbei...

    Nur wenn ich jetzt z.B. vom SucheViewModel etwas zu der Playlist zufügen möchte, abhängig davon welcher Radiobutton gewählt ist: Du hast ja gesagt, ich soll dann in meinem ViewModelPlattendecks drei Eigenschaften haben: DeckLeft, DeckRight und Crossfader. Mir ist noch nicht ganz klar, wie du das machen willst...
    wenn mehrere Decks vorhanden sind, sollte es imo eine Klasse Deck geben, und wenn du zwei davon brauchst, mach dir zwei hin.
    DeckLeft und DeckRight ist mir schon viel zu fixiert.
    Und natürlich auch nur ein uclDeck, und zwar als DataTemplate.

    Dann mach ein UniformGrid mit mw. einer Zeile, und bnde deine ObservableCollection(Of Deck) da dran.
    Wenn die OC zwei Decks enthält, wird das UniformGrid die auch schön nebeneinander anzeigen.

    Also sowas in die Richtung - nagel mich nicht drauf fest, ich müsste auch erst herumprobieren bisses passt.
    Evtl. wirds auch ein ItemsControl mit UniformGrid als ItemsPaneltemplate, oder sowas.

    Das hier jdfs. eher nicht:

    kafffee schrieb:

    Meinst du, dass ich dann von den Decks zwei leicht verschiedene Dateien/UCLs haben sollte


    Das zweite ucl wäre ein uclMischpult, aber das ist ja was ganz anderes als das uclDeck.
    Und du hast iwie ein ViewModelPlattendecks?
    Wieso hat das eine Property Playlist?
    Vom Wort her müsste ViewModelPlattendecks doch mehrere Plattendecks enthalten, und jedes Plattendecks genau eine PlayList.
    Also LayerViewModel.ViewModelPlattendecks.Playlist.Add(item) scheint mir vorne und hinten nicht aufzugehen.

    kafffee schrieb:

    Du meinst sollte (!)

    Jep

    kafffee schrieb:

    Meinst du, dass ich dann von den Decks zwei leicht verschiedene Dateien/UCLs haben sollte

    Ne. So hab ichs ja auch nicht geschrieben. Ein(!) Control. Aber zwei Instanzen(!) von diesem.

    kafffee schrieb:

    Mir ist noch nicht ganz klar, wie du das machen willst..

    Das sehen wir wenn du dann mal soweit bist. Setzte mal die ViewModels auf.

    Ich würde hier keine ObservableCollection machen, sondern wirklich mit DeckLeftVm und DeckRightVm arbeiten denn es wird ja sicher bei zwei bleiben, macht ja bei einem Mischpult keinen sinn und die Umsetzung des Faders und anderen Abhängigkeiten würde auch zu komplex werden, ganz zu schweigen vom Fading per bass.dll. Theorie ist immer das eine, Praxis das andere, und da ich hier keinerlei notwenigkeit sehen bist du so wohl besser aufgehoben. Gerade als eher Anfänger.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    ErfinderDesRades schrieb:

    Wieso hat das eine Property Playlist?
    Vom Wort her müsste ViewModelPlattendecks doch mehrere Plattendecks enthalten, und jedes Plattendecks genau eine PlayList.


    Ja genau das war nur zu Testzwecken, ob ich von meinem ViewModelSuche die gefundenen Tracks dann ins ViewModelPlattendecks rüberschicken kann.

    War ursprünglich so geplant wie in diesem Thread, dass ich dann ein Array mit den zwei Playlists hab, aber da hab ich nicht weit genug gedacht...:

    Zwei ähnliche Methoden zusammenfassen?
    @Nofear23m

    So ich hab mal in die Tasten gehauen und hoffe das ist so in deinem Sinne:

    Ich habe jetzt eine PlattendecksView.xaml (also das Mischpult):

    XML-Quellcode

    1. ​<UserControl x:Class="PlattendecksView"
    2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    4. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    5. xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    6. xmlns:local="clr-namespace:VamosALaPlayer_3._0.View"
    7. xmlns:viewmodel="clr-namespace:VamosALaPlayer_3._0.ViewModel;assembly=VamosALaPlayer_3._0.ViewModel"
    8. mc:Ignorable="d"
    9. d:DesignHeight="450" d:DesignWidth="800" Name="Plattendecks">
    10. <Grid>
    11. <Grid.ColumnDefinitions>
    12. <ColumnDefinition Width="49.75*"/>
    13. <ColumnDefinition Width="0.5*"/>
    14. <ColumnDefinition Width="49.75*"/>
    15. </Grid.ColumnDefinitions>
    16. <Grid.RowDefinitions>
    17. <RowDefinition Height="90*"/>
    18. <RowDefinition Height="10*"/>
    19. </Grid.RowDefinitions>
    20. <local:Plattendeck1_2View Grid.Column="0" Grid.Row="0" DataContext="{Binding DeckLeft}"/>
    21. <local:Plattendeck1_2View Grid.Column="2" Grid.Row="0" DataContext="{Binding DeckRight}"/>
    22. <GridSplitter Grid.Row="0" Grid.Column="1" Grid.RowSpan="1" Width="3" VerticalAlignment="Stretch" HorizontalAlignment="Center" Background="{DynamicResource VordergrundfarbeBrush}" ResizeBehavior="PreviousAndNext"/>
    23. <Grid Name="grdCrossfader" Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="3">
    24. <Grid.RowDefinitions>
    25. <RowDefinition Height="50*"/>
    26. <RowDefinition Height="50*"/>
    27. </Grid.RowDefinitions>
    28. <Slider Name="sldCrossfader" Style="{DynamicResource MeineSlider}" Grid.Row="0" Orientation="Horizontal" Width="350" Margin="0,20,0,0" Value="{Binding Crossfader}"/>
    29. <Label Style="{DynamicResource Überschriften}" HorizontalAlignment="Center" Grid.Row="1" Margin="0">Crossfader</Label>
    30. </Grid>
    31. </Grid>
    32. </UserControl>


    Die beiden Decks habe ich in eine (!) Datei gepackt, das geht ja hieraus vor.

    Des weiteren habe ich jetzt ein DeckViewModel.vb, was noch leer ist.

    Und ein PlattendecksViewModel.vb:

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.Collections.ObjectModel
    3. Imports System.Windows
    4. Imports System.Windows.Input
    5. Imports VamosALaPlayer_3._0.ViewModel.Instrastructure
    6. Public Class PlattendecksViewModel
    7. Inherits Instrastructure.ViewModelBase
    8. Private Property LayerViewModel As ViewModel.LayerViewModel
    9. Sub New(Parent As ViewModel.LayerViewModel)
    10. LayerViewModel = Parent
    11. _Playlist = New ObservableCollection(Of Model.MP3FileInfo)
    12. Playlist = New ObservableCollection(Of Model.MP3FileInfo)
    13. End Sub
    14. Public Property DeckLeft As ViewModel.DeckViewModel
    15. Get
    16. End Get
    17. Set(value As ViewModel.DeckViewModel)
    18. End Set
    19. End Property
    20. Public Property DeckRight As ViewModel.DeckViewModel
    21. Get
    22. End Get
    23. Set(value As ViewModel.DeckViewModel)
    24. End Set
    25. End Property
    26. Private _Crossfader As Integer
    27. Public Property Crossfader As Integer
    28. Get
    29. Return _Crossfader
    30. End Get
    31. Set(value As Integer)
    32. _Crossfader = value
    33. RaisePropertyChanged()
    34. End Set
    35. End Property


    Wie findest du's? Hab ich alles richtig gemacht soweit?

    Wir müssen jetzt erstmal ohne einen Projektupload auskommen, ich habe es zwar versucht hinauszuzögern, aber es liess sich nicht mehr vermeiden, eine Drittanbieter-DLL einzubinden...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kafffee“ ()