ich glaube ich stehe kurz vor dem durchbruch
so habe ich das label erstellt
- <Label Content="HomeView" Background="{Binding BackgroundColor}" />
und ein button zum testen
- <Button Content="TestSPS" Height="50" Width="50" Command="{Binding TestLabelCommand}" />
das ist mein viewmodel:
- public class HomeViewModel : ViewModelBase
- {
- #region Members
- private Brush _backgroundColor;
- #endregion
- #region Properties
- public Brush BackgroundColor
- {
- get { return _backgroundColor; }
- set
- {
- if (_backgroundColor == value)
- return;
- _backgroundColor = value;
- RaisePropertyChanged("BackgroundColor");
- }
- }
- #endregion
- #region commands
- public ICommand TestLabelCommand { get; private set; }
- #endregion
- /// <summary>
- /// Initializes a new instance of the HomeViewModel class.
- /// </summary>
- public HomeViewModel()
- {
- TestLabelCommand = new RelayCommand(() => ExecuteTestLabelCommand());
- _backgroundColor = Brushes.Brown;
- }
- private void ExecuteTestLabelCommand()
- {
- if (ConnectSPS.Read_BOOL_fromSPS("MAIN.bTest"))
- {
- _backgroundColor = Brushes.Green;
- MessageBox.Show("TRUE");
- }
- else
- {
- _backgroundColor = Brushes.Red;
- MessageBox.Show("FALSE");
- }
- }
- }
Alles anzeigen
die verbindung zur sps funktioniert, ich bekomme die messagebox mit TRUE oder FALSE je nach zustand der variable in der SPS. das kommando wird also ausgeführt, aber die farbe ändert leider noch nicht... sie ist beim start brown, wie im constructor vom viewmodel definiert, aber sie ändert sich danach nicht mehr. wo hängts noch?
nun noch etwas zu MVVM: meine daten (kommen ja mehrheitlich aus der sps) wären nun eigentlich nach MVVM die models richtig? somit halte ich mich nicht an MVVM wenn ich direkt aus dem VM via meiner klasse connectSPS (diese beinhaltet die funktionen zum lesen und schreiben auf die sps) auf die daten zugreife richtig?