2014-10-07 114 views
0

我有两个字段的用户控件:如何在用户控件中创建自定义属性?

public string OffText { set; get; } 
public string OnText { set; get; } 

在我的形式加入这一控制,并填写OffTextOnText属性之后。在控件的构造函数中我有:

public FakeToggleSwitch() 
    { 
     InitializeComponent(); 

     if (State) 
     { 
      CheckEdit.Text = OnText; 
     } 
     else 
     { 
      CheckEdit.Text = OffText; 
     } 
    } 

而且在调试模式下我看到OnTextOffTextnull。这里有什么可能是错的?我有什么必须与领域?

+0

在WPF用户控件创建[依赖项属性(http://msdn.microsoft.com/en- us/library/ms752914%28v = vs.110%29.aspx)非标准属性 – Franck 2014-10-07 11:09:41

+0

自动属性具有'default'值。 'reference'类型的默认值是'null'。您可以简单地在构造函数中设置它们的值(构造函数的目的是在默认状态下构造对象)。 – Sinatr 2014-10-07 11:12:47

+0

我想你必须访问像下面的usercontrol引用的属性,让我们说您的窗体上的用户控件具有名称“UC”,那么你必须使用像这样的属性uc.OnText和uc.OffText – 2014-10-07 11:15:23

回答

1

那些不是字段,但是auto-properties

如果您使用自动属性和它的默认值应为0(数值型)或null(引用类型)不同,则可以将其设置在构造

public string OffText { set; get; } 
public string OnText { set; get; } 

public Constructor() 
{ 
    // init 
    OffText = "..."; 
    OnText = "..."; 
} 

否则,你可能会决定正常使用性能

private string _offText = "..."; // default value 
public string OffText 
{ 
    get { return _offText; } 
    set { _offText = value; } 
} 

如果使用wpf,则通常UserControl性能有必须依赖属性(支持绑定)。通过使用code snippets很容易完成创建依赖项属性。类型

propdp 标签标签

得到

public int MyProperty 
{ 
    get { return (int)GetValue(MyPropertyProperty); } 
    set { SetValue(MyPropertyProperty, value); } 
} 

// Using a DependencyProperty as the backing store for MyProperty. This enables animation, styling, binding, etc... 
public static readonly DependencyProperty MyPropertyProperty = 
    DependencyProperty.Register("MyProperty", typeof(int), typeof(ownerclass), new PropertyMetadata(0)); 
相关问题