C# WPF readonly DependencyProperty在“属性”窗口中可编辑
我创建了一个WPF只读DP,如下所示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
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,这样它就不会显示在编辑器中,用户甚至可以更改它?