如何防止继承属性的修改?

kov*_*and 1 c# wpf inheritance

我在标准的wpf组合框中添加了一些额外的东西.在构造函数中,我设置了两个属性:

public SmartComboBox()
            : base()
        {
            this.IsEditable = true;
            this.IsTextSearchEnabled = false;
            ...
        }
Run Code Online (Sandbox Code Playgroud)

这两个属性继承自System.Windows.Controls.ComboBox.在构造函数中设置它们的值后,如何防止修改这两个属性?

Tig*_*ran 6

简短的回答:你不能,因为你不能改变那些属性修饰符.如果要隐藏实现,只需 ComboBox封装在类中.

public class SmartComboBox {

     private ComboBox _uiCombo = ....
}
Run Code Online (Sandbox Code Playgroud)

另外还有一件事:

在你的榜样,提供的代码,没有任何理由的显式调用base()ctor,因为它会通过调用CLR