|
namespace System.Windows.Controls.WpfPropertyGrid
{
/// <summary>
/// Controls Browsable state of the property without having access to property declaration or inherited property.
/// Supports a "*" (All) wildcard determining whether all the properties within the given class should be Browsable.
/// </summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Interface, AllowMultiple= true, Inherited=true)]
public sealed class BrowsablePropertyAttribute : Attribute
{
/// <summary>
/// Determines a wildcard for all properties to be affected.
/// </summary>
public const string All = "*";
/// <summary>
/// Gets the name of the property.
/// </summary>
/// <value>The name of the property.</value>
public string PropertyName { get; private set; }
/// <summary>
/// Gets or sets a value indicating whether property is browsable.
/// </summary>
/// <value><c>true</c> if property should be displayed at run time; otherwise, <c>false</c>.</value>
public bool Browsable { get; private set; }
/// <summary>
/// Initializes a new instance of the <see cref="BrowsablePropertyAttribute"/> class.
/// </summary>
/// <param name="propertyName">Name of the property.</param>
/// <param name="browsable">if set to <c>true</c> the property is browsable.</param>
public BrowsablePropertyAttribute(string propertyName, bool browsable)
{
PropertyName = string.IsNullOrEmpty(propertyName) ? All : propertyName;
Browsable = browsable;
}
/// <summary>
/// Initializes a new instance of the <see cref="BrowsablePropertyAttribute"/> class.
/// </summary>
/// <param name="propertyName">Name of the property.</param>
public BrowsablePropertyAttribute(string propertyName) : this(propertyName, true) { }
/// <summary>
/// Initializes a new instance of the <see cref="BrowsablePropertyAttribute"/> class.
/// </summary>
/// <param name="browsable">if set to <c>true</c> all public properties are browsable; otherwise hidden.</param>
public BrowsablePropertyAttribute(bool browsable) : this(All, browsable) { }
}
}
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Chief Architect - Sea Surveillance AS.
Specializing in integrated operations and high performance computing solutions.
I’ve been fooling around with computers since the early eighties, I’ve even done work on CP/M and MP/M.
Wrote my first “real” program on a BBC micro model B based on a series in a magazine at that time. It was fun and I got hooked on this thing called programming ...
A few Highlights:
- High performance application server development
- Model Driven Architecture and Code generators
- Real-Time Distributed Solutions
- C, C++, C#, Java, TSQL, PL/SQL, Delphi, ActionScript, Perl, Rexx
- Microsoft SQL Server, Oracle RDBMS, IBM DB2, PostGreSQL
- AMQP, Apache qpid, RabbitMQ, Microsoft Message Queuing, IBM WebSphereMQ, Oracle TuxidoMQ
- Oracle WebLogic, IBM WebSphere
- Corba, COM, DCE, WCF
- AspenTech InfoPlus.21(IP21), OsiSoft PI
More information about what I do for a living can be found at:
harlinn.com or
LinkedIn
You can contact me at
espen@harlinn.no