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
- ColumnWidthChangedEvent.cs
- TabPage.cs
- UrlPath.cs
- EncoderNLS.cs
- ComplusTypeValidator.cs
- SubpageParagraph.cs
- LogReserveAndAppendState.cs
- NamedPipeConnectionPool.cs
- HashAlgorithm.cs
- Constants.cs
- SetMemberBinder.cs
- CommandBinding.cs
- IgnoreDataMemberAttribute.cs
- ValueHandle.cs
- WebPartHeaderCloseVerb.cs
- DocumentPageViewAutomationPeer.cs
- HttpListenerResponse.cs
- CharacterMetrics.cs
- ScrollPatternIdentifiers.cs
- ToolStripDropDownItemDesigner.cs
- Shared.cs
- TrustManager.cs
- XPathNodeIterator.cs
- SecurityContext.cs
- Transform.cs
- CookieProtection.cs
- MultiTrigger.cs
- webproxy.cs
- PasswordRecovery.cs
- GenericArgumentsUpdater.cs
- ModelUIElement3D.cs
- NavigationProperty.cs
- path.cs
- RealizationDrawingContextWalker.cs
- BindToObject.cs
- FrameSecurityDescriptor.cs
- CodeCommentStatementCollection.cs
- KnownTypes.cs
- QilVisitor.cs
- LowerCaseStringConverter.cs
- TextClipboardData.cs
- OdbcParameterCollection.cs
- UserCancellationException.cs
- columnmapfactory.cs
- SoapCodeExporter.cs
- MenuItemCollectionEditor.cs
- PageCatalogPart.cs
- SynchronizedDisposablePool.cs
- ComponentEditorForm.cs
- DefaultDialogButtons.cs
- HttpHandlersSection.cs
- AssemblyCache.cs
- Blend.cs
- FilterElement.cs
- DoubleStorage.cs
- WebColorConverter.cs
- GcHandle.cs
- MenuItemAutomationPeer.cs
- OperationParameterInfo.cs
- ScrollChrome.cs
- HandlerFactoryWrapper.cs
- DataGridViewAdvancedBorderStyle.cs
- Char.cs
- TrustSection.cs
- AsymmetricSignatureFormatter.cs
- XPathBuilder.cs
- SqlConnectionHelper.cs
- FragmentQueryKB.cs
- LogWriteRestartAreaState.cs
- MappingItemCollection.cs
- Size3D.cs
- SqlCachedBuffer.cs
- DynamicActionMessageFilter.cs
- SqlDataSourceView.cs
- WaitHandle.cs
- BindingListCollectionView.cs
- sqlinternaltransaction.cs
- JoinGraph.cs
- XmlSerializerFactory.cs
- WebPartDisplayMode.cs
- XmlToDatasetMap.cs
- TaskFileService.cs
- xmlglyphRunInfo.cs
- Size.cs
- SQlBooleanStorage.cs
- DocumentSchemaValidator.cs
- EncryptedXml.cs
- HostProtectionPermission.cs
- HMACSHA384.cs
- ToolStripRenderer.cs
- SspiHelper.cs
- PropertyDescriptorComparer.cs
- PointAnimationUsingKeyFrames.cs
- OleDbError.cs
- JsonXmlDataContract.cs
- TeredoHelper.cs
- PrePrepareMethodAttribute.cs
- EventHandlersDesigner.cs
- ComponentGlyph.cs
- DoubleLink.cs