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
- PerspectiveCamera.cs
- FileDialogCustomPlacesCollection.cs
- KerberosRequestorSecurityToken.cs
- InitializerFacet.cs
- ConfigurationErrorsException.cs
- DataSourceCache.cs
- SqlParameterCollection.cs
- ConsumerConnectionPoint.cs
- MediaContext.cs
- GlobalDataBindingHandler.cs
- XamlBrushSerializer.cs
- Timer.cs
- NamespaceList.cs
- KeyPullup.cs
- PersianCalendar.cs
- MaskedTextBoxTextEditorDropDown.cs
- Metafile.cs
- Misc.cs
- SamlAttributeStatement.cs
- UnsafeMethods.cs
- SystemColors.cs
- DataGridColumnDropSeparator.cs
- IsolatedStorageException.cs
- SkinBuilder.cs
- ConnectionPoolManager.cs
- ButtonFlatAdapter.cs
- MiniLockedBorderGlyph.cs
- DEREncoding.cs
- PtsHelper.cs
- CodeNamespaceImportCollection.cs
- DesignTimeTemplateParser.cs
- _OverlappedAsyncResult.cs
- ServiceTimeoutsBehavior.cs
- ClientApiGenerator.cs
- Underline.cs
- ListBox.cs
- SiteOfOriginContainer.cs
- SoapSchemaImporter.cs
- ToolZone.cs
- SQLInt16Storage.cs
- PropertyPushdownHelper.cs
- FrameworkTextComposition.cs
- ProxyAttribute.cs
- InstanceStoreQueryResult.cs
- RequestBringIntoViewEventArgs.cs
- TrackingMemoryStream.cs
- RadioButtonStandardAdapter.cs
- NativeBuffer.cs
- OracleCommandBuilder.cs
- XmlLoader.cs
- DataComponentNameHandler.cs
- GridViewEditEventArgs.cs
- StdValidatorsAndConverters.cs
- Nodes.cs
- RuntimeCompatibilityAttribute.cs
- XmlNodeComparer.cs
- DbBuffer.cs
- InertiaTranslationBehavior.cs
- StateDesigner.LayoutSelectionGlyph.cs
- UInt64Converter.cs
- BufferedWebEventProvider.cs
- Scanner.cs
- DefaultExpressionVisitor.cs
- mediaclock.cs
- KeyManager.cs
- FormView.cs
- WmlLiteralTextAdapter.cs
- HtmlHistory.cs
- RadioButtonDesigner.cs
- Point3DCollectionConverter.cs
- BuildManager.cs
- WebPartAddingEventArgs.cs
- DesignTimeVisibleAttribute.cs
- FlowDocumentScrollViewer.cs
- XmlEntity.cs
- Subtract.cs
- ToolStripDropDownClosedEventArgs.cs
- UidManager.cs
- DataKeyCollection.cs
- PropertyGridCommands.cs
- ButtonFieldBase.cs
- GenericAuthenticationEventArgs.cs
- ListControl.cs
- SchemaTableColumn.cs
- ListBoxItem.cs
- ImageInfo.cs
- DocumentXmlWriter.cs
- TextTreePropertyUndoUnit.cs
- RtfControls.cs
- XPathNavigatorReader.cs
- CacheChildrenQuery.cs
- RenderTargetBitmap.cs
- WindowsListView.cs
- ListView.cs
- NamespaceEmitter.cs
- DataServiceRequestOfT.cs
- FixedPage.cs
- BidOverLoads.cs
- ExpressionParser.cs
- Double.cs