2010-12-23 7 views
0

Ich bin in ein kleines Problem geraten. Ich habe ein DataTemplate erstellt und es in App.xaml eingefügt, und ich möchte es verwenden, um meine CheckBoxen in einem Dutzend ListViews, die ich habe, zu stylen. Die jeweiligen ListViews haben jeweils mindestens eine Spalte mit einem bool-Wert.WPF - Wie bindet man Artikel in DataTemplate?

Hier ist die Datatemplate ich gemacht:

<DataTemplate x:Key="checkBoxDataTemplate"> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*" /> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 

     <CheckBox Grid.Column="0" Grid.Row="0" Style="{StaticResource DataGridCheckBox}" IsChecked="{WhatDoIPutHere?}" /> 
    </Grid> 
</DataTemplate> 

Und ich versuche, es zu benutzen, diese zu ersetzen:

<GridViewColumn Header="Discovery Date"> 
    <GridViewColumn.CellTemplate> 
     <DataTemplate> 
      <CheckBox Grid.Column="0" Grid.Row="0" Style="{StaticResource DataGridCheckBox}" IsChecked="{Binding CaseProperty.DiscoveryDate, Mode=OneWay, Converter={StaticResource booleanConverter},ConverterParameter='datetime'}" /> 
     </DataTemplate> 
    </GridViewColumn.CellTemplate> 
</GridViewColumn> 

Wie Sie sehen können, habe ich gebunden an eine bestimmte Eigenschaft von IsChecked ein Objekt, das an meine ListView angehängt ist. Wenn ich es durch meine Vorlage ersetzen, wie binde ich an die IsChecked-Eigenschaft von CheckBox in der DataTemplate?

Vielen Dank im Voraus,
Sonny

+2

Ich kann nicht sehen, warum sich Ihre Bindung überhaupt ändern sollte, weil die Instanz der Vorlage an dieselbe Sache gebunden ist. –

+0

Planen Sie, in Ihrer realen Implementierung mehr Inhalt zu checkBoxDataTemplate hinzuzufügen? Im Moment ist es funktional identisch mit der Inline-Vorlage, so dass es nicht wirklich von Vorteil wäre, Komplexität hinzuzufügen, die benötigt wird, um verschiedene Bindungen darin einzubinden. –

+0

Was versuchen Sie zu erreichen, verwenden Sie die gleiche Datenvorlage an verschiedenen Orten und binden Sie ihre Eigenschaften an verschiedene Dinge? – Alex

Antwort

-1

Ich habe seit diesem Ansatz aufgegeben. Ich glaube nicht, dass DataTemplates so konzipiert sind ... oh well ...

0

Sie auf diese Weise versuchen:

<CheckBox Grid.Column="0" Grid.Row="0" Style="{StaticResource DataGridCheckBox}" 
      IsChecked="{Binding}" /> 

und dann die entsprechenden DataContext.