C# Visual Studio正在自动将我的一个属性更改为null

C# Visual Studio正在自动将我的一个属性更改为null,c#,.net,winforms,visual-studio,windows-forms-designer,C#,.net,Winforms,Visual Studio,Windows Forms Designer,我怎么能叫它退后,别管这房子 这里是酒店: /// <summary> /// Collection of SednaTreeViewItems used to populate the SednaTreeView. /// </summary> public IEnumerable<SednaTreeViewItem> TreeNodes { get { return treeNodes; } set { ultra

我怎么能叫它退后,别管这房子

这里是酒店:

/// <summary>
/// Collection of SednaTreeViewItems used to populate the SednaTreeView.
/// </summary>
public IEnumerable<SednaTreeViewItem> TreeNodes
{
    get { return treeNodes; }
    set 
    {
        ultraTree.Nodes.Clear();
        treeNodes = value;
        foreach (var item in treeNodes)
        {
            UltraTreeNode node = new UltraTreeNode(item.ValueMember, item.DisplayMember);
            ultraTree.Nodes.Add(node);
        }
    }
}
//
///用于填充SEDNATREEEVIEW的SEDNATREEEVIEW项的集合。
/// 
公共可数树节点
{
获取{返回树节点;}
设置
{
Nodes.Clear();
treeNodes=值;
foreach(treeNodes中的var项)
{
UltraTreeNode=新的UltraTreeNode(item.ValueMember,item.DisplayMember);
ultraTree.Nodes.Add(节点);
}
}
}

每当我在设计器中更改另一个属性时,它似乎会将此属性检测为属性并将其设置为null。是否可以使用装饰器使其忽略属性?

您可以添加一个属性,使其在设计器中不可“浏览”

Browsable不太管用,但还有一个问题提供了另一个属性


您可以添加一个属性,使其在设计器中不可“浏览”

Browsable不太管用,但还有一个问题提供了另一个属性

修复程序是,它阻止设计器序列化属性的值(即,将垃圾添加到
designer.cs
文件)

看起来是这样的:

using System.ComponentModel;

/// <summary>
/// Collection of SednaTreeViewItems used to populate the SednaTreeView.
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IEnumerable<SednaTreeViewItem> TreeNodes
{
    get { return treeNodes; }
    set 
    {
        ultraTree.Nodes.Clear();
        treeNodes = value;
        foreach (var item in treeNodes)
        {
            UltraTreeNode node = new UltraTreeNode(item.ValueMember, item.DisplayMember);
            ultraTree.Nodes.Add(node);
        }
    }
}
使用System.ComponentModel;
/// 
///用于填充SEDNATREEEVIEW的SEDNATREEEVIEW项的集合。
/// 
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
公共可数树节点
{
获取{返回树节点;}
设置
{
Nodes.Clear();
treeNodes=值;
foreach(treeNodes中的var项)
{
UltraTreeNode=新的UltraTreeNode(item.ValueMember,item.DisplayMember);
ultraTree.Nodes.Add(节点);
}
}
}
修复程序是,它阻止设计器序列化属性的值(即,将垃圾添加到
designer.cs
文件)

看起来是这样的:

using System.ComponentModel;

/// <summary>
/// Collection of SednaTreeViewItems used to populate the SednaTreeView.
/// </summary>
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
public IEnumerable<SednaTreeViewItem> TreeNodes
{
    get { return treeNodes; }
    set 
    {
        ultraTree.Nodes.Clear();
        treeNodes = value;
        foreach (var item in treeNodes)
        {
            UltraTreeNode node = new UltraTreeNode(item.ValueMember, item.DisplayMember);
            ultraTree.Nodes.Add(node);
        }
    }
}
使用System.ComponentModel;
/// 
///用于填充SEDNATREEEVIEW的SEDNATREEEVIEW项的集合。
/// 
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
公共可数树节点
{
获取{返回树节点;}
设置
{
Nodes.Clear();
treeNodes=值;
foreach(treeNodes中的var项)
{
UltraTreeNode=新的UltraTreeNode(item.ValueMember,item.DisplayMember);
ultraTree.Nodes.Add(节点);
}
}
}

使用该装饰器正确地从“属性”窗口中删除了该属性,但在.Designer.cs中该值仍被设置为null-有建议吗?使用该装饰器正确地从“属性”窗口中删除了该属性,但在.Designer.cs中该值仍被设置为null-有建议吗?谢谢,这可以完美地工作,不再将我的属性更改为null。@Sergio:酷。我注意到另一位回答者建议使用
Browsable
属性。如果属性在设计时不应显示在“属性”窗口中,也可以这样做。但你不必同时使用它们。它们彼此完全独立工作。谢谢,这工作非常完美,不再将我的属性更改为null。@Sergio:酷。我注意到另一位回答者建议使用
Browsable
属性。如果属性在设计时不应显示在“属性”窗口中,也可以这样做。但你不必同时使用它们。它们彼此完全独立地工作。