Изменения в моем userControl стираются, когда я перестраиваюсь в Visual Studio (представление дизайнера) - PullRequest
2 голосов
/ 25 января 2011
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.

Хотя я МОГУ видеть атрибут LinkText класса NavigationItem.cs, когда я изменяю его на панели свойств, появляется предупреждениеup:

Предупреждение 1 Необходимо перестроить проект, чтобы изменения в Uboldi.LeftNavigationbar отображались в любых открытых дизайнерах.

Достаточно справедливо, я перестраиваю, а затемизменения, которые я только что набрал, пропали!

Есть идеи, почему?

Спасибо за потраченное время.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2018

Это старый, но не имеет ответа. Вот то, что я нашел, что работает. Надеюсь, это поможет кому-то еще.

[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();
     }
}
0 голосов
/ 26 января 2011

Возможно, ваши изменения не сохраняются дизайнером.

Вы пытались использовать DesignerSerializationVisibilityAttribute?

http://msdn.microsoft.com/en-us/library/system.componentmodel.designerserializationvisibilityattribute.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...