2016-04-28 13 views
0

Verwenden von .Net 4.6.
Ich habe eine DataGridTextColumn an ​​eine decimal? Eigenschaft gebunden. (Ich brauchte Hilfe von diesem link, um es überhaupt zur Arbeit zu bringen.)
Ist es möglich, dem Benutzer zu erlauben, keinen Wert einzugeben? Das heißt, der Benutzer würde die Zelle auswählen und löschen, was darin ist.
In unserer Anwendung wird die gebundene Eigenschaft nicht aktualisiert, wenn der Benutzer die Zelle verlässt, nachdem er den Inhalt gelöscht hat.
Vielen Dank für jede Einsicht -DatagridTextColumn mit Dezimalwert, keine Eingabe zulassen

Update:

var dataGridTextColumn = new DataGridTextColumn(); 
string bindingPath = $"{descr.BindingPropertyName}"; 
Binding b = new Binding(bindingPath); 
b.Mode = readOnly ? BindingMode.OneWay : BindingMode.TwoWay; 
// Accordng to some articles on StackOverflow, binding as UpdatePropertyChanged 
// prevents the editing of decimal and decimal? values. 
// With UpdateSourceTrigger.LostFocus, it appears to work as desired. 
b.UpdateSourceTrigger = UpdateSourceTrigger.LostFocus; 
dataGridTextColumn.Binding = b; 

Die Säule funktioniert wie gewünscht, mit der Ausnahme, wenn die gebundene Eigenschaft dezimal ist? (und vielleicht andere Arten) kann der Benutzer die Zelle nicht leer lassen.

+0

Sie den Code zeigen kann? – ChrisF

Antwort

0

Sie sollten eine Nullable-Eigenschaft (? Dezimal) in der VM und geben Sie den TargetNullValue ('') in der Bindung, zum Beispiel definieren:

b.TargetNullValue = string.Empty; 
+0

Das habe ich gesucht, danke. – Number8

Verwandte Themen