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
- SplashScreenNativeMethods.cs
- UnicodeEncoding.cs
- ValueOfAction.cs
- PieceDirectory.cs
- MailAddress.cs
- HTMLTagNameToTypeMapper.cs
- FileStream.cs
- ToolConsole.cs
- ConfigurationSectionGroupCollection.cs
- ExceptionNotification.cs
- ResourcesChangeInfo.cs
- SecurityState.cs
- SchemaManager.cs
- BaseTransportHeaders.cs
- SiteIdentityPermission.cs
- Stack.cs
- LabelEditEvent.cs
- SafeBitVector32.cs
- ValidatingPropertiesEventArgs.cs
- FileLogRecordEnumerator.cs
- BrowserCapabilitiesCodeGenerator.cs
- IPPacketInformation.cs
- ComMethodElement.cs
- HtmlPhoneCallAdapter.cs
- FormViewModeEventArgs.cs
- XNodeNavigator.cs
- GlobalAclOperationRequirement.cs
- AbstractSvcMapFileLoader.cs
- VisualStyleRenderer.cs
- UrlMappingsSection.cs
- OleDbConnectionInternal.cs
- COM2ExtendedBrowsingHandler.cs
- TextParentUndoUnit.cs
- CriticalFinalizerObject.cs
- PersonalizablePropertyEntry.cs
- ClientRuntimeConfig.cs
- PopOutPanel.cs
- DataGridViewComboBoxCell.cs
- HttpPostedFileBase.cs
- IntAverageAggregationOperator.cs
- SessionStateSection.cs
- ContentDisposition.cs
- EncoderReplacementFallback.cs
- DataControlPagerLinkButton.cs
- EnumerableWrapperWeakToStrong.cs
- SR.Designer.cs
- ScriptControlManager.cs
- ObjectSecurity.cs
- ParserHooks.cs
- SevenBitStream.cs
- TextPatternIdentifiers.cs
- ScriptingSectionGroup.cs
- ControlSerializer.cs
- EncoderNLS.cs
- FixedPageProcessor.cs
- StringUtil.cs
- KnownTypes.cs
- OSEnvironmentHelper.cs
- CustomErrorsSection.cs
- CodeObject.cs
- DbConnectionInternal.cs
- Command.cs
- ObjectViewListener.cs
- PreservationFileReader.cs
- Int32AnimationUsingKeyFrames.cs
- CodeGen.cs
- CachingParameterInspector.cs
- WebPartsPersonalization.cs
- ImageSource.cs
- AppDomainFactory.cs
- TextParaLineResult.cs
- SystemIPGlobalProperties.cs
- Hashtable.cs
- ComEventsSink.cs
- Collection.cs
- graph.cs
- FileRecordSequenceCompletedAsyncResult.cs
- QueryRelOp.cs
- peersecuritysettings.cs
- BoundsDrawingContextWalker.cs
- InitializingNewItemEventArgs.cs
- RequestUriProcessor.cs
- HttpWriter.cs
- DrawingState.cs
- EntityDataSourceWizardForm.cs
- UnorderedHashRepartitionStream.cs
- TcpTransportManager.cs
- MetadataSerializer.cs
- SystemWebCachingSectionGroup.cs
- OperationCanceledException.cs
- IdentitySection.cs
- NetworkAddressChange.cs
- EntityDesignerDataSourceView.cs
- WebPartDisplayModeCollection.cs
- XpsColorContext.cs
- Configuration.cs
- PeerConnector.cs
- AssemblyAttributes.cs
- ObjectDataSourceEventArgs.cs
- SystemResourceHost.cs