einige fragen an bindings,list of,thread,listview

  • WPF

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    einige fragen an bindings,list of,thread,listview

    moin leute

    ich bin vor etwas längerer zeit auf wpf umgestiegen und hab da nun einige sachen wo ich einfach nicht mehr weiter komme...

    also dan fang ich mal an :D
    ich habe eine listview erstellt die ich über ein bindings bzw über eine "list of" befülle... das befüllen klappt soweit auch richtig gut. allerdings will ich eine spalte als bild/icon haben. wie stelle ich das an? wenn ich im editor (xaml oder wies heisst) einfach ein image hinzufüge kommt da das listview sowas nicht kann...

    ich hab mehrere listview mit unterschiedlichen bindings erstellt die alle über list of x gefüllt werden (unterschiedliche)... das befüllen klappt soweit richtig gut. jetzt will ich aber zb eine zeile im listview makieren und mit den makierten daten weiterarbeiten können... kann ich da wie bei winforms einfach mit "ListView1.SelectedItem.x" arbeiten oder muss ich dan auf die "list of" zurückgreifen und mir dan die daten so irgentwie besorgen? wenn ja wie?


    wie mache ich bei wpf ein Threading? ich muss einige sachen im hintergrund ablaufen lassen sonst hängt sich meine form auf. irgentwie soll es da nur "dispatcher" geben?



    und nochmal eine frage... wieso sollte man winforms nicht mit wpf mixen? alle sagen immer das man es nicht sollte aber gibt es dafür ein guten grund?

    wäre euch schonmal sehr dankbar :rolleyes:

    MVN050 schrieb:

    allerdings will ich eine spalte als bild/icon haben.
    Hier musst du mit Templates arbeiten(genauer gesagt DataTemplates). Mit "WPF + ListView + Image + Template" findest du sicher was.

    MVN050 schrieb:

    oder muss ich dan auf die "list of" zurückgreifen und mir dan die daten so irgentwie besorgen?
    Binde die SelectedItem Eigenschaft wieder an deine eigene Eigenschaft. Das ist die korrekte Weise um Logik von GUI zu trennen. Funktioniert wunderbar und wird auch in der Praxis so gemacht.

    MVN050 schrieb:

    wie mache ich bei wpf ein Threading?
    WPF ist nur die GUI. Was hinter der GUI abläuft ist zu 100% normales Visual Basic. Das heißt, dass das alles ganz genau so läuft wie in ner Konsole, Winforms, ASP.NET, WPF,... komplett egal.

    MVN050 schrieb:

    wieso sollte man winforms nicht mit wpf mixen?
    Dafür gibt es wahrscheinlich hunderte Gründe. Jedoch mangels Zeit eine Gegenfrage: Weshalb sollte man Konsole und Winforms mischen? Du weißt schon Button in ne Konsole klatschen > kann nicht gut gehen.
    WPF und Winforms sind zu 100% verschieden. Sobald du Winforms in das Teil rein bringst, kannst du die meisten Vorteile von WPF wegschmeißen. Winforms hat in WPF NICHTS verloren.
    Für eine ausführlichere Erklärung mit vielen, vielen Argumenten > Suchfunktion.


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
    guggemol Binding-Picking im Xaml-Editor
    Da gibts eine Listbox mit gebundenen Images drinne - mit ListView ists kaum anners.

    MVN050 schrieb:

    wieso sollte man winforms nicht mit wpf mixen?
    • Das verdoppelt die Komplexität deiner Anwendung. Sie enthält nunmehr sowohl WinForms-Technologie (vom wpf-Standpunkt aus veraltet) als auch Wpf-Technologie.
      Und "verdoppeln" ist mehr als verdoppeln, denn Komplexität verdoppelt sich eiglich nicht, wenn nochmal so viel hinzukommt, sondern es quadriert sich eher.
    • die WinForms-Bibliotheken blähen dein Proggi erheblich auf.
    • du gerätst in Versuchung, olle Winforms-Vorgehensweisen weiter zu reproduzieren, statt dich vernünftig ins neue Wpf einzuarbeiten.
    @thefiloe

    c-sharpcorner.com/resources/64…ges-in-a-wpf-listbox.aspx
    ist das so ein template? jedenfalls versteh ich das irgentwie nicht... funktionieren tut es aber dan hab ich ja keine liste mehr?

    Binde die SelectedItem Eigenschaft wieder an deine eigene Eigenschaft. Das ist die korrekte Weise um Logik von GUI zu trennen. Funktioniert wunderbar und wird auch in der Praxis so gemacht.

    wie mache ich den das wieder?


    @ErfinderDesRades
    danke für den link allerdings ist das ja nicht so ganz das was ich will?
    oder ist ein "datagrid" ehr was besseres um eine tabllenansicht zu mache und mit den angetragenen werten weiterarbeiten zu können?
    Nein wenn du eine ListBox verwendest, hast du selbstverständlich keine Spalten mehr, da du da nur immer ein Template für eine Spalte machen kannst, da die ListBox so oder so nur eine Spalte > keine Spalten hat.
    Du kannst jedoch auch für DataGrids, ListViews,... Templates machen. Das geht allgemein für rein gaaaar alles in WPF. In WPF kannst du immer alles zu 100% umgestalten > riesen Vorteil.
    Wie du das bindest? Du hast ja gesagt, dass deine ItemsSource auch gebunden ist. Das heißt, dass du an irgendwas bindest wie z.B. ObservableCollection<ModelKlasse>.
    Somit ist das SelectedItem auch vom Typ ModelKlasse(halt je nach dem was du verwendest > ModelKlasse ist nur ein Beispiel).
    Also erstellst du eine Eigenschaft wie du das auch schon bei der ItemsSource gemacht hast, nur halt jetzt vom Typ ModelKlasse und nennst sie von mir aus SelectedItem, CurrentItem,... what ever.
    Und daran bindest du jetzt die SelectedItem Eigenschaft. Heißt: <ListView ... SelectedItem="{Binding CurrentItem}".../>


    Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.

    MVN050 schrieb:

    danke für den link allerdings ist das ja nicht so ganz das was ich will?
    oder ist ein "datagrid" ehr was besseres...

    ich wollte dich auf die dortige Listbox hinweisen, weil die enthält eine gebundene Image-Property.

    (Ich glaub, das Sample-Projekt enthält garkein Datagrid, oder täusche ich mich?)