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
- BulletedListEventArgs.cs
- PersonalizationProviderHelper.cs
- CodeExpressionStatement.cs
- _ConnectStream.cs
- SplashScreenNativeMethods.cs
- TableLayoutStyleCollection.cs
- MetadataException.cs
- UserNameSecurityToken.cs
- ToolStripProgressBar.cs
- DataRowComparer.cs
- Exception.cs
- SafeNativeMethodsMilCoreApi.cs
- baseshape.cs
- BaseProcessProtocolHandler.cs
- ProtocolsConfigurationHandler.cs
- BufferedMessageWriter.cs
- WorkflowRuntimeServiceElement.cs
- DbInsertCommandTree.cs
- BlurBitmapEffect.cs
- XsdBuildProvider.cs
- InstanceDataCollectionCollection.cs
- MimeFormImporter.cs
- PathNode.cs
- TokenizerHelper.cs
- ExpressionTable.cs
- DockAndAnchorLayout.cs
- WebRequestModuleElement.cs
- MenuDesigner.cs
- WindowsTreeView.cs
- WindowPattern.cs
- DispatchChannelSink.cs
- GZipStream.cs
- DataQuery.cs
- UnionCodeGroup.cs
- FontUnitConverter.cs
- StringSorter.cs
- Header.cs
- ButtonBaseAdapter.cs
- ZipIOExtraField.cs
- UserControl.cs
- ZipPackage.cs
- Error.cs
- PathSegment.cs
- XslTransform.cs
- QilLiteral.cs
- WindowsRichEdit.cs
- Zone.cs
- Typography.cs
- HitTestWithPointDrawingContextWalker.cs
- SQLInt32Storage.cs
- SqlDataRecord.cs
- XmlAggregates.cs
- Stylesheet.cs
- ConnectionManager.cs
- CodeAttributeArgument.cs
- TagPrefixAttribute.cs
- XmlCharacterData.cs
- AbandonedMutexException.cs
- NullExtension.cs
- DiffuseMaterial.cs
- HostingEnvironmentWrapper.cs
- LayoutSettings.cs
- SerializationInfoEnumerator.cs
- CmsInterop.cs
- VBCodeProvider.cs
- RegexWorker.cs
- HttpRequestTraceRecord.cs
- Package.cs
- CheckedPointers.cs
- SatelliteContractVersionAttribute.cs
- DynamicDataExtensions.cs
- ToolStripRenderer.cs
- XsltException.cs
- PointHitTestResult.cs
- Int32Rect.cs
- SupportsEventValidationAttribute.cs
- SerializationInfoEnumerator.cs
- selecteditemcollection.cs
- MultiView.cs
- ToolStripButton.cs
- DBParameter.cs
- OrthographicCamera.cs
- Property.cs
- FrameworkTemplate.cs
- DataGridViewCellStyleBuilderDialog.cs
- DurableInstance.cs
- Win32.cs
- SqlBulkCopyColumnMappingCollection.cs
- _ListenerResponseStream.cs
- VisualBrush.cs
- CacheEntry.cs
- MailMessageEventArgs.cs
- StringUtil.cs
- XmlCollation.cs
- PropertyEmitter.cs
- CustomErrorCollection.cs
- InheritanceContextHelper.cs
- _HeaderInfoTable.cs
- DropDownList.cs
- DbProviderFactoriesConfigurationHandler.cs