2016-08-04 11 views
0

Ich habe eine Listview.Set ListviewItem als ausgewählt, wenn Eigenschaft = True

XAML:

<ListView Name="lv_records" SelectionMode="Multiple" SelectionChanged="lv_records_SelectionChanged" /> 

stelle ich die Itemssource dieser Listview mit einer einfachen Klasse zur Liste.

Klasse:

public class Container 
{ 
    public string Database { get; set; } 
    public string Value { get; set; } 
    public bool Selected { get; set; } 

    public Container(string db, string val) 
    { 
     Database = db; 
     Value = val; 
     Selected = false;  
    } 
} 

und

Aber ich möchte, um die Elemente wählen entsprechend dem Bool Wert. Wie ist das möglich? Vielen Dank im Voraus.

Antwort

2

binden die ListViewItem der IsSelected Eigenschaft in einem ItemContainerStyle:

<ListView ...> 
    <ListView.ItemContainerStyle> 
     <Style TargetType="ListViewItem"> 
      <Setter Property="IsSelected" Value="{Binding Selected}"/> 
     </Style> 
    </ListView.ItemContainerStyle> 
</ListView> 

Um über Änderungen der Selected Eigenschaft zu benachrichtigen, die Container-Klasse die INotifyPropertyChanged Schnittstelle zu implementieren hat:

public class Container : INotifyPropertyChanged 
{ 
    public event PropertyChangedEventHandler PropertyChanged; 

    private bool selected; 
    public bool Selected 
    { 
     get { return selected; } 
     set 
     { 
      selected = value; 
      PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Selected")); 
     } 
    } 

    ... 
} 
+0

Danke, das hat funktioniert :) – Jonas