Invoke
- WPF
Sie verwenden einen veralteten Browser (%browser%) mit Sicherheitsschwachstellen und können nicht alle Funktionen dieser Webseite nutzen.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
Es gibt 42 Antworten in diesem Thema. Der letzte Beitrag () ist von faxe1008.
-
-
@nafets3646
Wie oft siehst du hier im Forum Threads, in denen der TE Probleme hat, weil er Daten in irgendwelchen ListBoxen, ListViews oder DataGrids speichern will, und dabei dann auch noch untypisiert arbeitet?
Dem macht MVVM ein Ende, denn man wird praktisch gezwungen, Datenverarbeitung und GUI getrennt voneinander zu entwickeln. -
-
-
@nafets3646:
@faxe1008:
MVVM = Model View ViewModel
Das heißt, dass das ViewModel beides trennt. Also Model und View bzw. Daten und GUI.
Dann ist man gezwungen mit Binding zu arbeiten, sodass alles über ein Event einer bestimmten Schnittstelle geregelt wird und das ViewModel somit dem View dies mitteilt.#define for for(int z=0;z<2;++z)for // Have fun!
Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose!
Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da -
Ja ach nee, nur sehe ich nicht wirklich einen Sinn darin, um auf eine Property an einem Control eine Property zu erstellen. Die Logik ist ja dann folgende:
Ich sehe darin nur ne Verkomplizierung, vor allem da der Zugriff vom Codebehind auf die Property ja trotztem möglich. Und die Begründung mit dem "GUI von Daten trennen" heißt ja auch nicht unbedingt, dass man das MVVM-Pattern benutzen soll, man kann das Zeug ja auch so trennen, wie es in WinForms ja auch geht. -
-
VB.NET-Quellcode
- <Controls:MetroWindow x:Class="MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
- Title=".NET FileCopier" Height="350" Width="648.674" xmlns:local="clr-namespace:PropertyClassNamespace" DataContext="{x:Static local:PropertyClass.ProgressValue}">
Spoiler anzeigen VB.NET-Quellcode
- Imports System.ComponentModel
- Namespace PropertyClassNamespace
- Public Class PropertyClass
- Implements INotifyPropertyChanged
- Public Event PropertyChanged As PropertyChangedEventHandler _
- Implements INotifyPropertyChanged.PropertyChanged
- Private Sub NotifyPropertyChanged(ByVal info As String)
- RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
- End Sub
- Dim processValue As Integer = 0
- Public Property ProgressValue As Integer
- Get
- Return processValue
- End Get
- Set(value As Integer)
- If processValue <> value Then
- processValue = value
- NotifyPropertyChanged("ProgressValue")
- End If
- End Set
- End Property
- Dim processMaximum As Integer = 0
- Public Property ProgressMaximum As Integer
- Get
- Return processMaximum
- End Get
- Set(value As Integer)
- If processMaximum <> value Then
- processMaximum = value
- NotifyPropertyChanged("ProgressMaximum")
- End If
- End Set
- End Property
- End Class
- End Namespace
Funktioniert, aber nicht :
Fehler 1 Der Name "PropertyClass" ist im Namespace "clr-namespace:PropertyClassNamespace" nicht vorhanden.
faxe1008
-
-
-
Das ist nicht schwer und schnell erklärt.
Ein Singletone ist eine Klasse, von der nur genau eine Instanz existiert.
Ich löse das immer so:
Und genau dieses Objekt ist es, das wir als DataContext für unser Window haben wollen. -
Das der Designer meint, eine Klasse gäbe es nicht, dass kann man meistens in der Pfeife rauchen. Sind noch Kinderkrankheiten. Einfach mal das Projekt builden oder gar mal debuggen oder VS neustarten, dann weiß er idR bescheid.„Was daraus gefolgert werden kann ist, dass jeder intelligentere User sein Geld lieber für Bier ausgibt, um einen schönen Rausch zu haben, und nicht dieses Ranzprodukt.“
-Auszug aus einer Unterhaltung über das iPhone und dessen Vermarktung. -
Sorry das ich heute so begriffsstuzig bin.
Was passt hier nicht:
VB.NET-Quellcode
- <Controls:MetroWindow x:Class="MainWindow"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
- Title=".NET FileCopier" Height="350" Width="648.674" xmlns:local="clr-namespace:SomeClassNamespace" DataContext="{x:Static local:SomeClass.Instance}">
Visual Basic-Quellcode
- Imports System.ComponentModel
- Namespace SomeClassNameSpace
- Public Class SomeClass
- Implements INotifyPropertyChanged
- Public Event PropertyChanged As PropertyChangedEventHandler _
- Implements INotifyPropertyChanged.PropertyChanged
- Private Sub NotifyPropertyChanged(ByVal info As String)
- RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
- End Sub
- Dim processValue As Integer = 0
- Public Property ProgressValue As Integer
- Get
- Return processValue
- End Get
- Set(value As Integer)
- If processValue <> value Then
- processValue = value
- NotifyPropertyChanged("ProgressValue")
- End If
- End Set
- End Property
- Dim processMaximum As Integer = 0
- Public Property ProgressMaximum As Integer
- Get
- Return processMaximum
- End Get
- Set(value As Integer)
- If processMaximum <> value Then
- processMaximum = value
- NotifyPropertyChanged("ProgressMaximum")
- End If
- End Set
- End Property
- Private Shared _instance As SomeClass
- Public Shared ReadOnly Property Instance As SomeClass
- Get
- If _instance Is Nothing Then _instance = New SomeClass()
- Return _instance
- End Get
- End Property
- End Class
- End Namespace
faxe1008
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „faxe1008“ ()
-
-
Ah Ok so weit so gut:
Das letzte zu lösende Problem dabei:
Der Name "SomeClass" ist im Namespace "clr-namespace:NET_FileCopier" nicht vorhanden.
Ich bin mir hundertprozentig sicher, dass die Klasse die ich eingefügt habe SomeClass heißt und nicht in einem seperaten Namespace liegt
faxe1008
-
-
-
Ja, der WPF-Designer zickt leider ab und zu ein bisschen rum, der Code kompiliert aber trotzdem fehlerfrei. Bei Fehlermelungen im XAML-Code sollte man daher immer erst genau überlegen, ob das wirklich ein Fehler ist, oder ob der Designer rumspinnt.
Bei meiner Charmbar hab ich sowas: die Hälfte des XAML-Codes wird mir blau unterkringelt, aber es läuft trotzdem richtig. -
-
-
Tags
-
Ähnliche Themen