Das Problem
Ich habe ein Fenster mit einer Listview. Diese hat 2 Spalten, die erste soll eine Checkbox sein, was über ein DataTemplate realisiert ist, die Zweite soll nur einen Namen als String anzeigen.
Nun binde ich eine Liste von _Items _ (siehe unten) an die Listview, der String wird angezeigt, die Checkbox ebenfalls.
Nun soll aber die CheckBox-Eigenschaft IsChecked an die "_:::
Vielen Dank schon mal für eure Tipps!!!
//Das Fenster in XAML:
<Window>
...
<Window.Resources>
<DataTemplate x:Key="activeCellTemplate">
<CheckBox/>
</DataTemplate>
</Window.Resources>
<ListView x:Name="ItemsListView">
<ListView.View>
<GridView>
<GridViewColumn Header="Active" CellTemplate="{StaticResource activeCellTemplate}"/>
<GridViewColumn Header="Name" DisplayMemberBinding="{Binding Path=Name}"/>
</GridView>
</ListView.View>
</ListView>
...
</Window>
//Der Code:
public partial class Window
{
public Window
{
this.InitializeComponent();
// Liste erstellen
List<Item> items = new List<Item>();
items.Add(new Item(...));
// Databinding
this.ItemsListView.ItemsSource = items;
}
}
// Die Item Klasse
class Item
{
public bool Active { get; set; }
public string Name { get; set; }
...
}
Blog: www.palmmedia.de
Hmm, einfach
IsChecked={Binding Path=Active}
Aber richtig funktioniert das erst wenn du aus Active ein Dependency Property machst , dann ist auch Zweiwege Binding möglich, glaube genau das willst du doch auch oder? Das man über die Checkbox direkt den Active Wert eines ItemObjekts setzen kann oder?
Baka wa shinanakya naoranai.
Mein XING Profil.
Original von talla
Hmm, einfachIsChecked={Binding Path=Active}
Mit folgendem Code wird gar keine CheckBox mehr angezeigt:
<Window.Resources>
<DataTemplate x:Key="activeCellTemplate">
<CheckBox IsChecked={Binding Path=Active}/>
</DataTemplate>
</Window.Resources>
Original von talla
Aber richtig funktioniert das erst wenn du aus Active ein Dependency Property machst , dann ist auch Zweiwege Binding möglich, glaube genau das willst du doch auch oder? Das man über die Checkbox direkt den Active Wert eines ItemObjekts setzen kann oder?
Genau das will ich, aber erstmal will ich den aktuellen Wert mal angezeigt bekommen.
Blog: www.palmmedia.de
Versuchs mal mit Anführungszeichen:
<CheckBox IsChecked="{Binding Active}"/>
Eine Depedency Property macht ausserhalb der UI nicht besonders viel Sinn, aber Du solltest INotifyPropertyChanged in der Item Klasse implementieren.
Florian
www.planet-xaml.net
Original von fkruesch
Versuchs mal mit Anführungszeichen:<CheckBox IsChecked="{Binding Active}"/>
Anführungszeichen hab ich schon drin, sonst bekommt man gleich nen Fehler, angezeigt wird sie trotzdem nicht.
Blog: www.palmmedia.de
Also bei mir funktioniert der Vorschlag, einfach
<CheckBox IsChecked="{Binding Path=Active}"/>
und schon gehts. Hab dir mal mein Versuch angehangen.
Baka wa shinanakya naoranai.
Mein XING Profil.
Vielen Dank für deine Mühe, habe den Fehler gefunden. Active war bei mir nicht public.
Blog: www.palmmedia.de
Ah okay, dachte der Code da oben von dir war nur gekürzt, weil da ist Active ja public.
Baka wa shinanakya naoranai.
Mein XING Profil.