【发布时间】:2019-10-02 12:09:31
【问题描述】:
所以我认为这很简单,但显然将依赖属性设置为 null 会导致异常。
public int? Value
{
get => (int?)GetValue(ValueProperty);
set {SetValue(ValueProperty, value); }
}
public static readonly DependencyProperty ValueProperty =
DependencyProperty.Register("Value", typeof(object), typeof(MyClass), new PropertyMetadata(default(int?), new PropertyChangedCallback(OnValueChanged)));
当使用上述代码并使用 value 或 null 调用 Value 设置器时,我得到以下异常
System.InvalidOperationException: 'Nullable object must have a value.'
这完全没有意义。如果它是Nullable object,那么根据定义,我应该可以将其设置为空。
所以我的问题是,有没有办法让依赖属性具有可空类型,同时还能够将其设置为空?
【问题讨论】:
-
我无法重现您的问题。请提供更多详细信息。
-
您是否在任何地方(绑定或 OnValueChanged)使用 Value.Value 访问您的值?
标签: c# dependency-properties nullable