Hallo
ich habe ein WPF-Fenster erstellt und in diesem ein ListView platziert. Dieses habe ich nun gefüllt mit einigen Werten (über Bindings mit Properties) und dann habe ich noch eine Checkboxspalte eingeführt (auch über Bindings mit Properties)
public int AddCheck(ref GridView mGVt, string strName)
{
GridViewColumn column = default(GridViewColumn);
column = new GridViewColumn();
column.Header = strName;
dynamic mData = new DataTemplate();
mData.DataType = typeof(CheckBox);
dynamic mFWF = new FrameworkElementFactory(typeof(CheckBox));
dynamic n = new System.Windows.Data.Binding(strName);
n.Mode = BindingMode.TwoWay;
mFWF.SetBinding(CheckBox.IsCheckedProperty, n);
mData.VisualTree = mFWF;
column.CellTemplate = mData;
mGVt.Columns.Add(column);
}
das ist der Code für die Checkbox
Nun möchte ich, dass wenn ich bei einer Spalte die Checkbox auf true setze (also auswähle), dass dann sich diese Reihe zb. rotfärbt (der Background)...möglichst soll das über Binding geschehen...aber mir fehlt grad ne idee...ich weiß nicht wo ich da anfangen muss -.-
Hallo Runshak,
du kannst die Hintergrundfarbe an den Wert der Checked-Eigenschaft der Checkbox binden und einen Converter angeben, der die entsprechende Hintergrundfarbe zurückgibt.
Hallo Runshak,
wenn du schon mit MVVM arbeitest, dann mach es richtig und setz die Bindings im XAML. Mach dir eine Listview mit einem Grid und dann gibst du als erste Spalte die Checkbox an und bindest das entsprechend.
Mit dem Background pro Zeile genau das gleiche: Binde das und behandle es einfach im Code. Ist nichts andres als ein Binding. Oder direkt im XAML mit Converter.
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
Ich hatte aber die Aufgabe das komplette ListView dynamisch zu erzeugen...dann geht das doch nur so oder?
Hallo Runshak,
wenn du eine Liste an die ListView bindest, ists doch automatisch dynamisch. Du legst ja nur das Template fest, wie jeder Eintrag aussehen soll. Das ist (u.a.) der Sinn von Bindings 😉
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
achso 😃 ja das macht Sinn 😄
aber ich steh grad total auf dem Schlauch...ich komm einfach auf keinen grünen Zweig...
folgende Fragen bekomm ich grad nicht gelöst...
...
Hallo Runshak,
ich glaube du hat das mit den Bindings noch nicht verstanden. Mach dir eine ListView und binde an die ItemSource eine Liste deiner Objekte.
ItemsSource="{Binding ...}"
Die Darstellung machst du in der View. Genauso wie den Background. Den kannst du auch aus dem XAML heraus machen an einem eigenen Property. Eben mit Converter oder machst es über das ViewModel an deinen Objekten. Gibt mehrere Möglichkeiten. Der Converter ist hier aber wohl das beste.
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck