Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WPF readonly DependencyProperty在“属性”窗口中可编辑_C#_.net_Wpf_Visual Studio - Fatal编程技术网

C# WPF readonly DependencyProperty在“属性”窗口中可编辑

C# WPF readonly DependencyProperty在“属性”窗口中可编辑,c#,.net,wpf,visual-studio,C#,.net,Wpf,Visual Studio,我创建了一个WPF只读DP,如下所示 private static readonly DependencyPropertyKey IsFalsePropertyKey = DependencyProperty.RegisterReadOnly("IsFalse", typeof(bool), typeof(FlightDeckBoolExpressionConverter), new PropertyMetadata(false)); public static readonl

我创建了一个WPF只读DP,如下所示

private static readonly DependencyPropertyKey IsFalsePropertyKey =
    DependencyProperty.RegisterReadOnly("IsFalse", typeof(bool), typeof(FlightDeckBoolExpressionConverter),
    new PropertyMetadata(false));

public static readonly DependencyProperty IsFalseProperty = IsFalsePropertyKey.DependencyProperty;

[Bindable(true), Browsable(true), Category("Common Properties"), Description("The result of the expression")]
public bool IsFalse {
    get { return (bool)GetValue(IsFalseProperty); }
    private set { SetValue(IsFalsePropertyKey, value); }
}
我的问题是,即使属性是只读的,控件的用户仍然可以在编辑器中设置它,如下图所示(即使出现编译时错误)

这似乎只发生在布尔属性的情况下。例如,
double
属性的输入字段将不可编辑

我还尝试用标记将属性标记为只读,但似乎没有效果


有没有办法在“属性”窗口中将此布尔属性的DP设置为只读?

两件事:如果完全删除私有setter,会发生什么情况?我在网上看到过两个例子,它们都没有一个私人的二传手,在这两种情况下都只是一个获得者。另一个问题:在这种情况下,是否可以使用字符串表示法?您是否尝试过将“Browsable”标志设置为false,这样它就不会显示在编辑器中,用户甚至可以更改它?