2009-03-29 7 views
0

Bindung Ich habe folgende XAML:alle Artikel Auswahl nach wpf listview

<ListView x:Name="debitOrderItems" ItemsSource="{Binding DebitOrderItems}"> 
    <ListView.ItemTemplate> 
    <DataTemplate> 
     <CheckBox x:Name="checkbox" Content="{Binding}" IsChecked="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}, Path=IsSelected}" /> 
    </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 

eine Liste von Elementen Bindung funktioniert gut und ich eine schöne Listview mit Checkboxen, aber ich würde sie sofort alle ausgewählt haben möchten. Es gibt eine SelectAll() - Methode in der ListView, aber wann kann ich sie aufrufen? DataContextChanged funktioniert nicht, da ich es verlinke, bevor ich die DebitOrderItems darauf ablege.

Antwort

3

Sie können dies in der Loaded-Ereignis tun:

public Window() 
{ 
    InitializeComponent(); 
    Loaded += delegate 
    { 
     _listView.SelectAll(); 
    }; 
} 

Das heißt, ich würde Ihr Design in Frage stellen. Normalerweise hätten Sie für jedes Element in der Liste ein Anzeigemodell, und Sie würden die IsChecked-Eigenschaft an eine Eigenschaft in diesem Anzeigemodell binden.

+0

Danke, obwohl ich mehr auf einen Weg hoffte, es in XAML zu tun. –

+0

Die Vorgehensweise in XAML erfolgt über ein Ansichtsmodell. Lassen Sie IsChecked einfach an eine Eigenschaft in Ihrem Ansichtsmodell binden und stellen Sie sicher, dass die Eigenschaft standardmäßig auf true festgelegt ist. –

+0

Danke Kent, ich werde mir mein Design anschauen und neu bewerten ... –