C# 如何将可为Null的依赖项属性设置为Null?

C# 如何将可为Null的依赖项属性设置为Null?,c#,dependency-properties,nullable,C#,Dependency Properties,Nullable,所以我认为这很简单,但显然将依赖属性设置为null会导致异常 public int? Value { get => (int?)GetValue(ValueProperty); set {SetValue(ValueProperty, value); } } public static readonly DependencyProperty ValueProperty = DependencyProperty

所以我认为这很简单,但显然将依赖属性设置为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
setter调用
Value
of
null
时,我得到以下异常

System.invalidoOperationException:“可空对象必须有一个值。”

这完全没有道理。如果它是一个
可为null的对象
,那么根据定义,我应该能够将其设置为null


所以我的问题是,有没有一种方法可以使依赖属性具有可为null的类型,同时也可以将其设置为null

注册依赖项属性时,应将
typeof(object)
替换为
typeof(int?

public static readonly DependencyProperty ValueProperty = 
    DependencyProperty.Register("Value", typeof(int?), typeof(MyClass), new PropertyMetadata(default(int?), new PropertyChangedCallback(OnValueChanged)));

int?
属性设置为
null
default(int?
应该可以工作。

我无法重现您的问题。请提供更多详细信息。是否有任何地方(绑定或OnValueChanged)您正在使用Value.Value访问您的值?这并不能解决问题。同样的例外,同样的location@AnthonyRussell:请告诉我们如何以及在哪里获得异常。我得到了,它在上面的代码中。当该依赖属性设置为null时,当该值设置为null@AnthonyRussell:何时何地将
值设置为
null
?请提供一个代码片段。并告诉我们您使用的是什么XAML框架。