0

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

更新:

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;

该列按需要工作,除非绑定属性为十进制?(可能还有其他类型)用户不能将单元格留空。

4

1 回答 1

0

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

b.TargetNullValue = string.Empty;
于 2016-04-28T23:26:48.783 回答