带有十进制值的DatagridTextColumn,不允许输入

时间:2016-04-28 16:12:25

标签: c# wpf datagridtextcolumn

使用.Net 4.6。
我有一个绑定到decimal?属性的DataGridTextColumn。 (我需要link的帮助才能让它工作。)
是否可以允许用户输入任何值?也就是说,用户将选择单元格并删除其中的任何内容 在我们的应用程序中,当用户在删除内容后离开单元格时,绑定属性不会更新 感谢您的任何见解 -

更新:

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;

除非绑定属性为十进制,否则列会按需运行? (可能还有其他类型)用户不能将单元格留空。

1 个答案:

答案 0 :(得分:0)

您应该在VM中定义一个可空属性(decimal?)并在绑定中指定TargetNullValue(''),例如:

b.TargetNullValue = string.Empty;