Laden...

[WPF MVVM] Canvas Background über Slider setzen

Erstellt von SyntaxTalksToMe vor 5 Jahren Letzter Beitrag vor 5 Jahren 866 Views
S
SyntaxTalksToMe Themenstarter:in
17 Beiträge seit 2017
vor 5 Jahren
[WPF MVVM] Canvas Background über Slider setzen

Moin,

es sind eigentlich 2 kleinere Teilprobleme. Aber wichtig ist mir erstmal das mit dem Canvas. Ich möchte ein Image via Binding als Background im Canvas festlegen. Das Canvas braucht dabei einen Imagebrush.
Kurz: ich möchte erst einmal bewirken, dass per Button Klick ein Image über Binding im Canvas angezeigt wird, da ich das später über ein Slider regeln möchte.

Um das ganze einfach zu halten, habe ich erstmal ein Testprojekt gemacht um das zu testen. Also ich kann mit Sicherheit sagen, dass die Modelebene das tut, was sie soll. Also die Daten bereitstellen. Der Fehler muss am Binding liegen, oder ich übersehe etwas. Denn schreibe ich:


   meinCanvas.background = modelData.LoadMap()

funktioniert es.


 <Canvas Margin="495,757,953,40.8">
                <Canvas.Background>
                    <ImageBrush ImageSource="{Binding TestBild, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
                </Canvas.Background>
            </Canvas>

VM


 private ImageBrush testBild;
        public ImageBrush TestBild
        {
            get { return testBild; }
            set
            {
                testBild = value;
                ChangeProperty("TestBild");
            }
        }

ViewModel:


   public void TestPics(object obj)
        {
            TestBild = modelData.LoadMap();
        }


  public ViewModel()
        {
  
            testPic = new RelayCommand(TestPics, param => canExecute);
        }


    private ICommand testPic;
        public ICommand TestPic
        {
            get { return testPic; }
            set
            {
                testPic = value;
            }

        }

Ich habe schon einiges probiert. Das was ich gepostet habe, ist nur eine Momentaufnahme.

Vielen Dank

5.658 Beiträge seit 2006
vor 5 Jahren

Mir ist nicht so richtig klar, wozu du die erste Zeile brauchst. Das sieht nicht nach MVVM aus. Ansonsten müßtest du einfach nur die Eigenschaft im ViewModel setzen, ein Command braucht es dazu nicht unbedingt.

Wenn es nicht funktioniert, mußt du es debuggen. Siehe dazu den Abschnitt "Debugging" in [Artikel] MVVM und DataBinding

Weeks of programming can save you hours of planning

S
SyntaxTalksToMe Themenstarter:in
17 Beiträge seit 2017
vor 5 Jahren

Den Link hab ich bereits in meinen Favoriten. Danke.

Die erste Zeile ist tatsächlich kein MVVM. Ich wollte nur damit sagen / zeigen dass es so funktioniert.

Das Thema hat sich erledigt. Es war das falsche Bildformat.