2017-08-22 1 views
0

Ich habe eine PictureBox, die ich die DataBindings über Eigenschaften in Visual Studio auf ein bestimmtes Bildtyp-Feld meiner Tabelle gesetzt habe. So weit, so gut, es bringt das Image der Datenbank.C# change pictureBox DataBinding bei Klick

Aber ich brauche diese PictureBox, um zu ändern, welches Bild es bringt, je nachdem, auf welche Schaltfläche geklickt wurde. Ich habe 4 Bildfelder auf meinem Tisch. Wenn der Benutzer auf button1 klickt, muss diese PictureBox mit dem Feld image1 meiner Tabelle verknüpft werden. Wenn der Benutzer auf die Schaltfläche 2 klickt, ändere seine Datenspeicherung und bringe das Bild, das in image2 gespeichert ist, in die Tabelle.

Wie kann ich das tun?

+0

Was Sie bisher versucht haben? – ainwood

+0

Ich dachte in put 4 pictureBoxes, jeder DataBinded mit dem richtigen Feld der Tabelle, und setzen Sie dann sichtbar = false, ändern Sie auf True auf klicken, aber, diese Form haben viele Werkzeuge, Bleistift, löschen und einige drawString. Ich möchte nicht alle diese Tools duplizieren, ich möchte diese Tools auf der PictureBox verwenden, egal welches Bild angezeigt wird, und im richtigen Tabble-Feld speichern. – Brugo

Antwort

0

Ich würde ein Image Handler Einführung wie hier beschrieben: https://www.dotnetperls.com/ashx

Die imagehandler verwendet werden würden, um zu bestimmen, welches Bild an die Clientanwendung zurückgegeben. Wenn zum Beispiel auf die erste Schaltfläche geklickt wird, wird Bild 1 zurückgegeben.

0

Sie können eine Klasse wie folgt erstellen:

public class ImageViewModel : INotifyPropertyChaged 
{ 

    public event PropertyChangedEventHandler PropertyChanged; 

    private int state = 0; 
    public int State 
    { 
     set 
     { 
      this.state = value; 
      this.OnPropertyChanged("State"); 
      this.OnPropertyChanged("CurrentBitmap"); 
     } 
     get 
     { 
      return this.state; 
     } 
    } 
    public Bitmap SelectedBitmap 
    { 
     get 
     { 
      if(this.state = 0) 
       return Bitmap1; //You have to add the logic for Bitmap1 
      else if(this.state = 1) 
       return Bitmap2; //You have to add the logic for Bitmap1 
      else if(this.state = 2) 
       return Bitmap3; //You have to add the logic for Bitmap1 
      else if(this.state = 3) 
       return Bitmap4; //You have to add the logic for Bitmap1 
     } 
    } 

    protected void OnPropertyChanged(string propertyName) 
    { 
     PropertyChangedEventHandler handler = PropertyChanged; 
     if (handler != null) 
     { 
      PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); 
     } 
    } 
} 

dann müssen Sie Ihre PictureBox binden auf SelectedBitmap

+0

Ich dachte an etwas Einfacheres, wie picBox.Table.Field.image1, nach btn click, picBox.table.Field.Image2. Ich habe nur 4 Bild-Typ-Zellen in meiner Tabelle, möchte ändern, welche Zelle diese PicBox mit einer Schaltfläche bringen wird. – Brugo