2016-09-08 1 views
1

Ich möchte benutzerdefinierte Spalte in DataGrid haben:Datagridtemplatecolumn Bindung

<DataGridTemplateColumn Header="Click"> 
    <DataGridTemplateColumn.CellTemplate> 
     <DataTemplate> 
      <CheckBox IsChecked="{Binding IsChecked}" /> 
     </DataTemplate> 
    </DataGridTemplateColumn.CellTemplate> 
</DataGridTemplateColumn> 

jedoch CheckBox klicken (aktivieren/deaktivieren) löst keine Eigenschaft Setter

bool _isChecked; 
public bool IsChecked 
{ 
    get { return _isChecked; } 
    set 
    { 
     _isChecked = value; // setting breakpoint here 
     OnPropertyChanged(); 
    } 
} 

Der Setter manchmal genannt zu erhalten und ich verstehe nicht, wann genau es passiert: wenn ich die Reihe wechsele? wenn ich auf eine andere Zelle doppelklicke? Oder was?

Wenn ich ListView verwenden, dann wird die Bindung ausgelöst sofort.

Meine Frage: was ist los? Wie setze ich Setzer, sobald ich ticke/ticke CheckBox?

+1

Sollte Ihr Problem beheben. –

+0

@ Mr.B, danke, das war es. – Sinatr

+0

Gern geschehen. Bitte überprüfen Sie es als richtig, wenn es Ihnen nichts ausmacht. –

Antwort

3

<CheckBox IsChecked="{Binding IsChecked,UpdateSourceTrigger=PropertyChanged}" />

Sollte Ihr Problem beheben.

+0

Ich habe 'UpdateSourceTrigger' völlig vergessen und es war nicht einfach herauszufinden, dass es' LostFocus' war (wie ich in der Frage erklärt habe * es war * unberechenbar *). – Sinatr

Verwandte Themen