2011-07-25 7 views
1

プロパティを一度オフにして残しておく方法を教えてください。ここでVisual Studioが自動的に自分のプロパティのいずれかをヌルに変更しています

は財産だ:

/// <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); 
     } 
    } 
} 

私はデザイナーにいると、プロパティとしてこれを検出し、nullに設定すると思われる他のプロパティを変更するたびに。プロパティを無視するために使用できるデコレータはありますか?

答えて

3

修正が(つまり、あなたのDesigner.csファイルにジャンクを追加する)プロパティの値をシリアル化からデザイナーを防ぐDesignerSerializationVisibility attribute、です。

それは次のようになります。そのデコレータを使用して

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); 
     } 
    } 
} 
+0

ありがとう、これは完全に動作し、もはや私のプロパティをnullに変更しません。 –

+0

@Sergio:Cool。私は 'Browsable'属性を使って別の回答者に推薦しました。デザイン時にプロパティウィンドウにプロパティが表示されないようにする必要がある場合は、これを行うこともできます。しかし、それらを一緒に使う必要はありません。彼らは互いに完全に独立して働く。 –

2

属性を追加して、デザイナーで「ブラウズ可能」にすることはできません。

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

ブラウズ可能ではかなりの仕事はしませんでしたが、別の属性を提供しています別の質問があります。

How do I get the WinForm Designer to totally ignore a property on a custom control?

+0

が正しくプロパティ]ウィンドウから、そのプロパティを削除し、まだ値がまだ.Designer.csにnullに設定されている - 任意の提案を? –

関連する問題