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
- TableLayoutStyleCollection.cs
- SimpleHandlerFactory.cs
- OrderedHashRepartitionStream.cs
- PersonalizablePropertyEntry.cs
- UrlPropertyAttribute.cs
- initElementDictionary.cs
- Vector3D.cs
- StringAnimationUsingKeyFrames.cs
- _TLSstream.cs
- SQLDecimalStorage.cs
- XmlResolver.cs
- DefaultTypeArgumentAttribute.cs
- PenThread.cs
- WebPartTransformer.cs
- DetailsViewInsertEventArgs.cs
- LoginView.cs
- AutomationTextAttribute.cs
- SerializationObjectManager.cs
- DataRecordObjectView.cs
- CompiledELinqQueryState.cs
- SessionStateUtil.cs
- TextElementCollectionHelper.cs
- AgileSafeNativeMemoryHandle.cs
- DesignerActionGlyph.cs
- TemplatePagerField.cs
- ReflectEventDescriptor.cs
- StatusBarPanelClickEvent.cs
- DataGridDesigner.cs
- SafeEventLogReadHandle.cs
- TypedTableHandler.cs
- Bitmap.cs
- ObjectPersistData.cs
- HttpStreamXmlDictionaryReader.cs
- WorkflowView.cs
- ArraySubsetEnumerator.cs
- VectorKeyFrameCollection.cs
- ToolStripDropDownClosingEventArgs.cs
- DataViewSetting.cs
- _CookieModule.cs
- SoapProtocolImporter.cs
- CircleHotSpot.cs
- ConfigurationElementCollection.cs
- Renderer.cs
- DataSourceXmlClassAttribute.cs
- XsdBuildProvider.cs
- XmlAttributeOverrides.cs
- StrokeNodeEnumerator.cs
- HandlerFactoryWrapper.cs
- XmlDeclaration.cs
- EntityDescriptor.cs
- FromReply.cs
- NumberFunctions.cs
- UrlMappingsSection.cs
- WebPartAddingEventArgs.cs
- EventToken.cs
- ChannelTokenTypeConverter.cs
- NullReferenceException.cs
- SymLanguageType.cs
- Pens.cs
- SR.Designer.cs
- SystemTcpConnection.cs
- NestedContainer.cs
- DictionaryContent.cs
- CodeTypeDeclarationCollection.cs
- ListViewContainer.cs
- TreeView.cs
- EditModeSwitchButton.cs
- RowSpanVector.cs
- WinOEToolBoxItem.cs
- ToolStripPanelRenderEventArgs.cs
- FillErrorEventArgs.cs
- DefaultWorkflowSchedulerService.cs
- CommonDialog.cs
- GCHandleCookieTable.cs
- CountAggregationOperator.cs
- ImageAttributes.cs
- HostingEnvironmentException.cs
- HttpCookieCollection.cs
- TypeRefElement.cs
- WarningException.cs
- CaseStatementSlot.cs
- ViewPort3D.cs
- ColorAnimation.cs
- DockPattern.cs
- UnsafeNativeMethods.cs
- RegexCompilationInfo.cs
- PropertyBuilder.cs
- DefaultClaimSet.cs
- _SpnDictionary.cs
- ImageClickEventArgs.cs
- GeneralTransformCollection.cs
- UIHelper.cs
- RequiredFieldValidator.cs
- ExtendLockCommand.cs
- BrowserPolicyValidator.cs
- LogWriteRestartAreaState.cs
- HostVisual.cs
- DbConnectionPoolIdentity.cs
- EncryptedType.cs
- RawTextInputReport.cs