2011-01-25 5 views
2
This is my navigationItem.cs user control: 


using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Drawing; 
using System.Data; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using Uboldi.Helpers; 

namespace Uboldi 
{ 
    public partial class NavigationItem : UserControl 
    { 
     public bool IsSelected { get; set; } 
     private string _linkText = String.Empty; 
     [Browsable(true)] 
     public string LinkText 
     { 
      get { return this._linkText; } 
      set 
      { 
       this._linkText = value; 
       RefreshDisplay(); 
      } 
     } 

     public NavigationItem() 
     { 
      InitializeComponent(); 
      RefreshDisplay(); 
     } 

     private void RefreshDisplay() 
     { 
      if (IsSelected) 
       this.BackColor = CustomizationHelper.GetSecondaryColor(); 
      else 
       this.BackColor = CustomizationHelper.GetPrimaryColor(); 

      lblText.Text = Text; 
     } 
    } 
} 

私はこれをNavigationBarという別のユーザーコントロールで使用します。私のuserControlの変更は、Visual Studio(デザイナービュー)で再構築すると消去されます

私はプロパティペインからそれを変更した場合、NavigationItem.csクラスのLinkText属性を参照することができますが、警告がポップアップ表示さ:

1警告あなたはへの変更のためのあなたの プロジェクトを再構築する必要があります 開いているデザイナー にUboldi.LeftNavigationbarが表示されます。

十分に、私は再構築し、ちょうど入力した変更はなくなっています!

なぜでしょうか?

ありがとうございます。

+0

@Sergioこれらは、属性ではなく属性と呼ばれます。 :) –

+0

@Chibaありがとうございます。私は、この問題は、そのプロパティに別のデコレータ、Browsable、正しいを含む必要があるために発生すると思いますか?何か案は? –

答えて

0

これは古いですが、答えを持っていません。ここで私はそれが動作することを発見したものです。うまくいけば、これは他の誰かを助けるでしょう

[Browsable(true)] 
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] 
[Description("Test text displayed in the link"), Category("Data")] 
public string LinkText 
{ 
    get { return this._linkText; } 
    set 
    { 
     this._linkText = value; 
     RefreshDisplay(); 
    } 
} 
関連する問題