Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / View / VBIdentifierName.cs / 1407647 / VBIdentifierName.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation.View { using System.Windows; using Microsoft.VisualBasic; using System.CodeDom.Compiler; using System.Globalization; using System.ComponentModel; using System.Xaml; using System.Xml; internal class VBIdentifierName : DependencyObject { public static readonly DependencyProperty IdentifierNameProperty = DependencyProperty.Register("IdentifierName", typeof(string), typeof(VBIdentifierName), new UIPropertyMetadata(OnIdentifierNameChanged)); public static readonly DependencyProperty IsValidProperty = DependencyProperty.Register("IsValid", typeof(bool), typeof(VBIdentifierName)); public static readonly DependencyProperty ErrorMessageProperty = DependencyProperty.Register("ErrorMessage", typeof(string), typeof(VBIdentifierName)); static VBCodeProvider vbProvider; static XamlSchemaContext xamlContext = new XamlSchemaContext(); static XamlType xamlType = new XamlType(typeof(string), xamlContext); bool checkAgainstXaml; VBCodeProvider VBProvider { get { if (vbProvider == null) { vbProvider = CodeDomProvider.CreateProvider("VisualBasic") as VBCodeProvider; } return vbProvider; } } public string ErrorMessage { get { return (string)GetValue(ErrorMessageProperty); } set { SetValue(ErrorMessageProperty, value); } } public bool IsValid { get { return (bool)GetValue(IsValidProperty); } set { SetValue(IsValidProperty, value); } } public string IdentifierName { get { return (string)GetValue(IdentifierNameProperty); } set { SetValue(IdentifierNameProperty, value); } } public bool CheckAgainstXaml { get { return this.checkAgainstXaml; } } public VBIdentifierName() { this.checkAgainstXaml = false; } public VBIdentifierName(bool checkAgainstXaml) { this.checkAgainstXaml = checkAgainstXaml; } static void OnIdentifierNameChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { ((VBIdentifierName)sender).OnIdentifierNameChanged(); } internal static bool IsValidXamlName(string name) { bool isValid = new XamlMember(name, xamlType, false).IsNameValid; if (isValid) { //Work around TFS bug #825815, in some cases, XamlMember.IsNameValid returns true but it's not valid Xml Name. try { XmlConvert.VerifyName(name); } catch (XmlException) { isValid = false; } } return isValid; } void OnIdentifierNameChanged() { string trimedName = this.IdentifierName; if (this.CheckAgainstXaml && !VBIdentifierName.IsValidXamlName(trimedName)) { this.IsValid = false; this.ErrorMessage = string.Format(CultureInfo.CurrentUICulture, SR.InvalidXamlMemberName, trimedName); } else if(!this.VBProvider.IsValidIdentifier(trimedName)) { this.IsValid = false; this.ErrorMessage = string.Format(CultureInfo.CurrentUICulture, SR.InvalidVisualBasicIdentifier, trimedName); } else if (trimedName.StartsWith("[", StringComparison.Ordinal) && trimedName.EndsWith("]", StringComparison.Ordinal)) { this.IsValid = false; this.ErrorMessage = string.Format(CultureInfo.CurrentUICulture, SR.InvalidVisualBasicIdentifier, trimedName); } else { this.IsValid = true; this.ErrorMessage = string.Empty; } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebBrowser.cs
- CurrencyManager.cs
- SessionStateItemCollection.cs
- SettingsPropertyWrongTypeException.cs
- SeekStoryboard.cs
- DesignerDataSourceView.cs
- ToolboxItem.cs
- SkewTransform.cs
- PointAnimation.cs
- CrossAppDomainChannel.cs
- ColorDialog.cs
- IssuanceLicense.cs
- ArithmeticException.cs
- ImageSource.cs
- ConfigurationSettings.cs
- OpenFileDialog.cs
- SHA1CryptoServiceProvider.cs
- ZipIOCentralDirectoryFileHeader.cs
- ObservableCollection.cs
- RTTypeWrapper.cs
- DataShape.cs
- ObjectTag.cs
- XmlReflectionMember.cs
- OutputCacheSettingsSection.cs
- SendMessageChannelCache.cs
- StorageEntitySetMapping.cs
- PersonalizationProviderHelper.cs
- EtwTrackingBehavior.cs
- RegionInfo.cs
- UnmanagedHandle.cs
- RemoteWebConfigurationHost.cs
- SrgsRulesCollection.cs
- LocalizationComments.cs
- GenericTypeParameterBuilder.cs
- Speller.cs
- NewExpression.cs
- ToolStripItemImageRenderEventArgs.cs
- Inline.cs
- DisplayNameAttribute.cs
- DrawingAttributes.cs
- HttpResponseWrapper.cs
- typedescriptorpermissionattribute.cs
- WindowsSecurityToken.cs
- _SSPIWrapper.cs
- HttpTransportManager.cs
- Mutex.cs
- SoapExtensionImporter.cs
- WorkflowViewStateService.cs
- DrawingServices.cs
- EntityViewGenerator.cs
- Model3D.cs
- ExpressionNormalizer.cs
- HandledMouseEvent.cs
- CrossContextChannel.cs
- Button.cs
- DefaultProxySection.cs
- ListViewSelectEventArgs.cs
- KeyValuePair.cs
- Select.cs
- MultiBindingExpression.cs
- FixedDocumentSequencePaginator.cs
- GridViewColumnCollection.cs
- WindowsPen.cs
- wgx_sdk_version.cs
- RegexStringValidator.cs
- JsonUriDataContract.cs
- PerformanceCounterNameAttribute.cs
- NavigationExpr.cs
- GlyphRunDrawing.cs
- X509AsymmetricSecurityKey.cs
- HtmlUtf8RawTextWriter.cs
- Int32.cs
- CryptoApi.cs
- SponsorHelper.cs
- BevelBitmapEffect.cs
- DesignTimeXamlWriter.cs
- MemberDescriptor.cs
- FileDataSourceCache.cs
- GiveFeedbackEvent.cs
- AppDomainProtocolHandler.cs
- PrivilegeNotHeldException.cs
- CommandBindingCollection.cs
- DataGridViewTopLeftHeaderCell.cs
- TreeNodeMouseHoverEvent.cs
- JoinTreeSlot.cs
- SmiMetaDataProperty.cs
- TemplateModeChangedEventArgs.cs
- CheckBoxAutomationPeer.cs
- listitem.cs
- XmlMapping.cs
- DriveNotFoundException.cs
- IteratorAsyncResult.cs
- ToolBarButtonDesigner.cs
- TlsnegoTokenAuthenticator.cs
- XmlSchemaObject.cs
- MenuItemStyle.cs
- Tile.cs
- SocketException.cs
- ActivityBuilderHelper.cs
- DataGridViewCellParsingEventArgs.cs