diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/AssemblyVersionInfo.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/AssemblyVersionInfo.cs index c6ea985d..bbd6826e 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/AssemblyVersionInfo.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/AssemblyVersionInfo.cs @@ -14,19 +14,116 @@ ***********************************************************************************/ -#pragma warning disable 0436 -[assembly: System.Reflection.AssemblyVersion( _XceedVersionInfo.Version )] -#pragma warning restore 0436 +#region Using directives + +using System; +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; +using System.Security; +using System.Windows; +using System.Windows.Markup; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("Xceed Toolkit for WPF")] +[assembly: AssemblyDescription("This assembly implements various Windows Presentation Framework controls.")] + +[assembly: AssemblyCompany("Xceed Software Inc.")] +[assembly: AssemblyProduct("Xceed Toolkit for WPF")] +[assembly: AssemblyCopyright("Copyright (C) Xceed Software Inc. 2007-2017")] +[assembly: AssemblyCulture("")] + + +// Needed to enable xbap scenarios +[assembly: AllowPartiallyTrustedCallers] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] +[assembly: CLSCompliant(true)] + + +[assembly: InternalsVisibleTo("Xceed.Wpf.Toolkit.Themes.Office2007" + ",PublicKey=" + + "0024000004800000940000000602000000240000525341310004000001000100d59d8147eb2015" + + "ca98a92da860fd766d101271d8c2f545894870fd6183255737d79347bbf5250291ae75651e1150" + + "1b7452ee003b80b936614cdda51db8eb6f8fde913e67d45395b480a992be17bf04744a7fe803ea" + + "131b925dcf84a73d22264352eca7c3fcf9387f3eee1d60ac7974f04866e6c72928dc0609abe341" + + "f92cbfb5")] + +[assembly: InternalsVisibleTo("Xceed.Wpf.Toolkit.Themes.Metro" + ",PublicKey=" + + "0024000004800000940000000602000000240000525341310004000001000100d59d8147eb2015" + + "ca98a92da860fd766d101271d8c2f545894870fd6183255737d79347bbf5250291ae75651e1150" + + "1b7452ee003b80b936614cdda51db8eb6f8fde913e67d45395b480a992be17bf04744a7fe803ea" + + "131b925dcf84a73d22264352eca7c3fcf9387f3eee1d60ac7974f04866e6c72928dc0609abe341" + + "f92cbfb5")] + +[assembly: InternalsVisibleTo("Xceed.Wpf.Toolkit.Themes.Windows10" + ",PublicKey=" + + "0024000004800000940000000602000000240000525341310004000001000100d59d8147eb2015" + + "ca98a92da860fd766d101271d8c2f545894870fd6183255737d79347bbf5250291ae75651e1150" + + "1b7452ee003b80b936614cdda51db8eb6f8fde913e67d45395b480a992be17bf04744a7fe803ea" + + "131b925dcf84a73d22264352eca7c3fcf9387f3eee1d60ac7974f04866e6c72928dc0609abe341" + + "f92cbfb5")] + + + + + +//In order to begin building localizable applications, set +//CultureYouAreCodingWith in your .csproj file +//inside a . For example, if you are using US english +//in your source files, set the to en-US. Then uncomment +//the NeutralResourceLanguage attribute below. Update the "en-US" in +//the line below to match the UICulture setting in the project file. + +//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] + + +[assembly: ThemeInfo( + ResourceDictionaryLocation.SourceAssembly, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] + +[assembly: XmlnsPrefix("http://schemas.xceed.com/wpf/xaml/toolkit", "xctk")] +[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit")] +[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Core.Converters")] +[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Core.Input")] +[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Core.Media")] +[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Core.Utilities")] +[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Chromes")] +[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Primitives")] +[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.PropertyGrid")] +[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.PropertyGrid.Attributes")] +[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.PropertyGrid.Commands")] +[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.PropertyGrid.Converters")] +[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.PropertyGrid.Editors")] +[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Zoombox")] +[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Panels")] + + +#pragma warning disable 1699 +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile(@"sn.snk")] +[assembly: AssemblyKeyName("")] +#pragma warning restore 1699 internal static class _XceedVersionInfo { - [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] - public const string BaseVersion = "3.4"; - [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] - public const string Version = BaseVersion + - ".0.0"; - [System.Diagnostics.CodeAnalysis.SuppressMessage( "Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields" )] - public const string PublicKeyToken = "ba83ff368b7563c6"; + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + public const string BaseVersion = "3.4"; + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + public const string Version = BaseVersion + + ".0.0"; + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields")] + public const string PublicKeyToken = "ba83ff368b7563c6"; } diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlDialog.xaml.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlDialog.xaml.cs index db766804..c85a6ced 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlDialog.xaml.cs +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/CollectionControl/Implementation/CollectionControlDialog.xaml.cs @@ -18,331 +18,333 @@ using System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; -using System.Windows; -using System.Windows.Media; -using Xceed.Wpf.Toolkit.Core.Utilities; +using System.IO; using System.Linq; using System.Runtime.Serialization; -using System.Security; -using System.IO; using System.Runtime.Serialization.Formatters.Binary; +using System.Security; +using System.Windows; +using System.Windows.Media; +using Xceed.Wpf.Toolkit.Core.Utilities; using Xceed.Wpf.Toolkit.PropertyGrid; namespace Xceed.Wpf.Toolkit { - public partial class CollectionControlDialogBase : - Window - { - } - - /// - /// Interaction logic for CollectionControlDialog.xaml - /// - public partial class CollectionControlDialog : CollectionControlDialogBase - { - #region Private Members - - private IList originalData = new List(); - - #endregion - - #region Properties - - public static readonly DependencyProperty ItemsSourceProperty = DependencyProperty.Register( "ItemsSource", typeof( IEnumerable ), typeof( CollectionControlDialog ), new UIPropertyMetadata( null ) ); - public IEnumerable ItemsSource - { - get - { - return ( IEnumerable )GetValue( ItemsSourceProperty ); - } - set - { - SetValue( ItemsSourceProperty, value ); - } - } - - public static readonly DependencyProperty ItemsSourceTypeProperty = DependencyProperty.Register( "ItemsSourceType", typeof( Type ), typeof( CollectionControlDialog ), new UIPropertyMetadata( null ) ); - public Type ItemsSourceType + public partial class CollectionControlDialogBase : + Window { - get - { - return ( Type )GetValue( ItemsSourceTypeProperty ); - } - set - { - SetValue( ItemsSourceTypeProperty, value ); - } } - public static readonly DependencyProperty NewItemTypesProperty = DependencyProperty.Register( "NewItemTypes", typeof( IList ), typeof( CollectionControlDialog ), new UIPropertyMetadata( null ) ); - public IList NewItemTypes + /// + /// Interaction logic for CollectionControlDialog.xaml + /// + public partial class CollectionControlDialog : CollectionControlDialogBase { - get - { - return ( IList )GetValue( NewItemTypesProperty ); - } - set - { - SetValue( NewItemTypesProperty, value ); - } - } + #region Private Members - public static readonly DependencyProperty IsReadOnlyProperty = DependencyProperty.Register( "IsReadOnly", typeof( bool ), typeof( CollectionControlDialog ), new UIPropertyMetadata( false ) ); - public bool IsReadOnly - { - get - { - return ( bool )GetValue( IsReadOnlyProperty ); - } - set - { - SetValue( IsReadOnlyProperty, value ); - } - } + private IList originalData = new List(); - public static readonly DependencyProperty EditorDefinitionsProperty = DependencyProperty.Register( "EditorDefinitions", typeof( EditorDefinitionCollection ), typeof( CollectionControlDialog ), new UIPropertyMetadata( null ) ); - public EditorDefinitionCollection EditorDefinitions - { - get - { - return ( EditorDefinitionCollection )GetValue( EditorDefinitionsProperty ); - } - set - { - SetValue( EditorDefinitionsProperty, value ); - } - } + #endregion - public CollectionControl CollectionControl - { - get - { - return _collectionControl; - } - } + #region Properties - #endregion //Properties + public static readonly DependencyProperty ItemsSourceProperty = DependencyProperty.Register("ItemsSource", typeof(IEnumerable), typeof(CollectionControlDialog), new UIPropertyMetadata(null)); + public IEnumerable ItemsSource + { + get + { + return (IEnumerable)GetValue(ItemsSourceProperty); + } + set + { + SetValue(ItemsSourceProperty, value); + } + } - #region Constructors + public static readonly DependencyProperty ItemsSourceTypeProperty = DependencyProperty.Register("ItemsSourceType", typeof(Type), typeof(CollectionControlDialog), new UIPropertyMetadata(null)); + public Type ItemsSourceType + { + get + { + return (Type)GetValue(ItemsSourceTypeProperty); + } + set + { + SetValue(ItemsSourceTypeProperty, value); + } + } - public CollectionControlDialog() - { - InitializeComponent(); - } + public static readonly DependencyProperty NewItemTypesProperty = DependencyProperty.Register("NewItemTypes", typeof(IList), typeof(CollectionControlDialog), new UIPropertyMetadata(null)); + public IList NewItemTypes + { + get + { + return (IList)GetValue(NewItemTypesProperty); + } + set + { + SetValue(NewItemTypesProperty, value); + } + } - public CollectionControlDialog( Type itemsourceType ) - : this() - { - ItemsSourceType = itemsourceType; - } + public static readonly DependencyProperty IsReadOnlyProperty = DependencyProperty.Register("IsReadOnly", typeof(bool), typeof(CollectionControlDialog), new UIPropertyMetadata(false)); + public bool IsReadOnly + { + get + { + return (bool)GetValue(IsReadOnlyProperty); + } + set + { + SetValue(IsReadOnlyProperty, value); + } + } - public CollectionControlDialog( Type itemsourceType, IList newItemTypes ) - : this( itemsourceType ) - { - NewItemTypes = newItemTypes; - } + public static readonly DependencyProperty EditorDefinitionsProperty = DependencyProperty.Register("EditorDefinitions", typeof(EditorDefinitionCollection), typeof(CollectionControlDialog), new UIPropertyMetadata(null)); + public EditorDefinitionCollection EditorDefinitions + { + get + { + return (EditorDefinitionCollection)GetValue(EditorDefinitionsProperty); + } + set + { + SetValue(EditorDefinitionsProperty, value); + } + } - #endregion //Constructors + public CollectionControl CollectionControl + { + get + { + return _collectionControl; + } + } - #region Overrides + #endregion //Properties - protected override void OnSourceInitialized( EventArgs e ) - { - base.OnSourceInitialized( e ); + #region Constructors - //Backup data if case "Cancel" is clicked. - if( this.ItemsSource != null ) - { - foreach( var item in this.ItemsSource ) + public CollectionControlDialog() { - originalData.Add( this.Clone( item ) ); + InitializeComponent(); } - } - } - #endregion - - #region Event Handlers + public CollectionControlDialog(Type itemsourceType) + : this() + { + ItemsSourceType = itemsourceType; + } - private void OkButton_Click( object sender, RoutedEventArgs e ) - { - if( this.ItemsSource is IDictionary ) - { - if( !this.AreDictionaryKeysValid() ) + public CollectionControlDialog(Type itemsourceType, IList newItemTypes) + : this(itemsourceType) { - MessageBox.Show( "All dictionary items should have distinct non-null Key values.", "Warning" ); - return; + NewItemTypes = newItemTypes; } - } - _collectionControl.PersistChanges(); - this.DialogResult = true; - this.Close(); - } + #endregion //Constructors - private void CancelButton_Click( object sender, RoutedEventArgs e ) - { - _collectionControl.PersistChanges( originalData ); - this.DialogResult = false; - this.Close(); - } + #region Overrides - #endregion //Event Hanlders + protected override void OnSourceInitialized(EventArgs e) + { + base.OnSourceInitialized(e); - #region Private Methods + //Backup data if case "Cancel" is clicked. + if (this.ItemsSource != null) + { + foreach (var item in this.ItemsSource) + { + originalData.Add(this.Clone(item)); + } + } + } - [SecuritySafeCritical] - private object Clone( object source ) - { - if( source == null ) - return null; + #endregion - object result = null; - var sourceType = source.GetType(); + #region Event Handlers - if( source is Array ) - { - using( var stream = new MemoryStream() ) - { - var formatter = new BinaryFormatter(); - formatter.Serialize( stream, source ); - stream.Seek( 0, SeekOrigin.Begin ); - result = ( Array )formatter.Deserialize( stream ); - } - } - // For IDictionary, we need to create EditableKeyValuePair to edit the Key-Value. - else if( ( this.ItemsSource is IDictionary ) - && sourceType.IsGenericType - && typeof( KeyValuePair<,> ).IsAssignableFrom( sourceType.GetGenericTypeDefinition() ) ) - { - result = this.GenerateEditableKeyValuePair( source ); - } - else - { - // Initialized a new object with default values - try + private void OkButton_Click(object sender, RoutedEventArgs e) { - result = FormatterServices.GetUninitializedObject( sourceType ); - } - catch( Exception ) - { - } + if (this.ItemsSource is IDictionary) + { + if (!this.AreDictionaryKeysValid()) + { + MessageBox.Show("All dictionary items should have distinct non-null Key values.", "Warning"); + return; + } + } - var constructor = sourceType.GetConstructor( Type.EmptyTypes ); - if( constructor != null ) - { - constructor.Invoke( result, null ); + _collectionControl.PersistChanges(); + this.DialogResult = true; + this.Close(); } - else + + private void CancelButton_Click(object sender, RoutedEventArgs e) { - result = source; + _collectionControl.PersistChanges(originalData); + this.DialogResult = false; + this.Close(); } - } - Debug.Assert( result != null ); - if( result != null ) - { - var properties = sourceType.GetProperties(); - foreach( var propertyInfo in properties ) + #endregion //Event Hanlders + + #region Private Methods + + [SecuritySafeCritical] + private object Clone(object source) { - var parameters = propertyInfo.GetIndexParameters(); - var index = parameters.GetLength( 0 ) == 0 ? null : new object[] { parameters.GetLength( 0 ) - 1 }; - var propertyInfoValue = propertyInfo.GetValue( source, index ); - - if( propertyInfo.CanWrite ) - { - // Look for nested object - if( propertyInfo.PropertyType.IsClass - && ( propertyInfo.PropertyType != typeof( Transform ) ) - && !propertyInfo.PropertyType.Equals( typeof( string ) ) ) + if (source == null) + return null; + + object result = null; + var sourceType = source.GetType(); + + if (source is Array) { - // We have a Collection/List of T. - if( propertyInfo.PropertyType.IsGenericType ) - { - // Clone sub-objects if the T are non-primitive types objects. - var arg = propertyInfo.PropertyType.GetGenericArguments().FirstOrDefault(); - if( ( arg != null ) && !arg.IsPrimitive && !arg.Equals( typeof( String ) ) && !arg.IsEnum ) + using (var stream = new MemoryStream()) { - var nestedObject = this.Clone( propertyInfoValue ); - propertyInfo.SetValue( result, nestedObject, null ); +#pragma warning disable SYSLIB0011 // Type or member is obsolete + var formatter = new BinaryFormatter(); +#pragma warning restore SYSLIB0011 // Type or member is obsolete + formatter.Serialize(stream, source); + stream.Seek(0, SeekOrigin.Begin); + result = (Array)formatter.Deserialize(stream); } - else + } + // For IDictionary, we need to create EditableKeyValuePair to edit the Key-Value. + else if ((this.ItemsSource is IDictionary) + && sourceType.IsGenericType + && typeof(KeyValuePair<,>).IsAssignableFrom(sourceType.GetGenericTypeDefinition())) + { + result = this.GenerateEditableKeyValuePair(source); + } + else + { + // Initialized a new object with default values + try + { + result = FormatterServices.GetUninitializedObject(sourceType); + } + catch (Exception) + { + } + + var constructor = sourceType.GetConstructor(Type.EmptyTypes); + if (constructor != null) { - // copy object if the T are primitive types objects. - propertyInfo.SetValue( result, propertyInfoValue, null ); + constructor.Invoke(result, null); } - } - else - { - var nestedObject = this.Clone( propertyInfoValue ); - if( nestedObject != null ) + else { - // For T object included in List/Collections, Add it to the List/Collection of T. - if( index != null ) - { - result.GetType().GetMethod( "Add" ).Invoke( result, new[] { nestedObject } ); - } - else - { - propertyInfo.SetValue( result, nestedObject, null ); - } + result = source; } - } } - else + Debug.Assert(result != null); + if (result != null) { - // For T object included in List/Collections, Add it to the List/Collection of T. - if( index != null ) - { - result.GetType().GetMethod( "Add" ).Invoke( result, new[] { propertyInfoValue } ); - } - else - { - // copy regular object - propertyInfo.SetValue( result, propertyInfoValue, null ); - } + var properties = sourceType.GetProperties(); + + foreach (var propertyInfo in properties) + { + var parameters = propertyInfo.GetIndexParameters(); + var index = parameters.GetLength(0) == 0 ? null : new object[] { parameters.GetLength(0) - 1 }; + var propertyInfoValue = propertyInfo.GetValue(source, index); + + if (propertyInfo.CanWrite) + { + // Look for nested object + if (propertyInfo.PropertyType.IsClass + && (propertyInfo.PropertyType != typeof(Transform)) + && !propertyInfo.PropertyType.Equals(typeof(string))) + { + // We have a Collection/List of T. + if (propertyInfo.PropertyType.IsGenericType) + { + // Clone sub-objects if the T are non-primitive types objects. + var arg = propertyInfo.PropertyType.GetGenericArguments().FirstOrDefault(); + if ((arg != null) && !arg.IsPrimitive && !arg.Equals(typeof(String)) && !arg.IsEnum) + { + var nestedObject = this.Clone(propertyInfoValue); + propertyInfo.SetValue(result, nestedObject, null); + } + else + { + // copy object if the T are primitive types objects. + propertyInfo.SetValue(result, propertyInfoValue, null); + } + } + else + { + var nestedObject = this.Clone(propertyInfoValue); + if (nestedObject != null) + { + // For T object included in List/Collections, Add it to the List/Collection of T. + if (index != null) + { + result.GetType().GetMethod("Add").Invoke(result, new[] { nestedObject }); + } + else + { + propertyInfo.SetValue(result, nestedObject, null); + } + } + } + } + else + { + // For T object included in List/Collections, Add it to the List/Collection of T. + if (index != null) + { + result.GetType().GetMethod("Add").Invoke(result, new[] { propertyInfoValue }); + } + else + { + // copy regular object + propertyInfo.SetValue(result, propertyInfoValue, null); + } + } + } + } } - } + + return result; } - } - return result; - } + private object GenerateEditableKeyValuePair(object source) + { + var sourceType = source.GetType(); + if ((sourceType.GetGenericArguments() == null) || (sourceType.GetGenericArguments().GetLength(0) != 2)) + return null; - private object GenerateEditableKeyValuePair( object source ) - { - var sourceType = source.GetType(); - if( ( sourceType.GetGenericArguments() == null ) || ( sourceType.GetGenericArguments().GetLength( 0 ) != 2 ) ) - return null; - - var propInfoKey = sourceType.GetProperty( "Key" ); - var propInfoValue = sourceType.GetProperty( "Value" ); - if( ( propInfoKey != null ) && ( propInfoValue != null ) ) - { - return ListUtilities.CreateEditableKeyValuePair( propInfoKey.GetValue( source, null ) - , sourceType.GetGenericArguments()[ 0 ] - , propInfoValue.GetValue( source, null ) - , sourceType.GetGenericArguments()[ 1 ] ); - } - return null; - } + var propInfoKey = sourceType.GetProperty("Key"); + var propInfoValue = sourceType.GetProperty("Value"); + if ((propInfoKey != null) && (propInfoValue != null)) + { + return ListUtilities.CreateEditableKeyValuePair(propInfoKey.GetValue(source, null) + , sourceType.GetGenericArguments()[0] + , propInfoValue.GetValue(source, null) + , sourceType.GetGenericArguments()[1]); + } + return null; + } - private bool AreDictionaryKeysValid() - { - var keys = _collectionControl.Items.Select( x => - { - var keyType = x.GetType().GetProperty( "Key" ); - if( keyType != null ) + private bool AreDictionaryKeysValid() { - return keyType.GetValue( x, null ); + var keys = _collectionControl.Items.Select(x => + { + var keyType = x.GetType().GetProperty("Key"); + if (keyType != null) + { + return keyType.GetValue(x, null); + } + return null; + }); + + return (keys.Distinct().Count() == _collectionControl.Items.Count) + && keys.All(x => x != null); } - return null; - } ); - return ( keys.Distinct().Count() == _collectionControl.Items.Count ) - && keys.All( x => x != null ); + #endregion } - - #endregion - } } diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Properties/AssemblyInfo.cs b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Properties/AssemblyInfo.cs deleted file mode 100644 index e2c7d4b1..00000000 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,120 +0,0 @@ -/************************************************************************************* - - Extended WPF Toolkit - - Copyright (C) 2007-2013 Xceed Software Inc. - - This program is provided to you under the terms of the Microsoft Public - License (Ms-PL) as published at http://wpftoolkit.codeplex.com/license - - For more features, controls, and fast professional support, - pick up the Plus Edition at http://xceed.com/wpf_toolkit - - Stay informed: follow @datagrid on Twitter or Like http://facebook.com/datagrids - - ***********************************************************************************/ - -#region Using directives - -using System; -using System.Globalization; -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Security; -using System.Windows; -using System.Windows.Markup; - -#endregion - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle( "Xceed Toolkit for WPF" )] -[assembly: AssemblyDescription("This assembly implements various Windows Presentation Framework controls.")] - -[assembly: AssemblyCompany("Xceed Software Inc.")] -[assembly: AssemblyProduct( "Xceed Toolkit for WPF" )] -[assembly: AssemblyCopyright( "Copyright (C) Xceed Software Inc. 2007-2017" )] -[assembly: AssemblyCulture( "" )] - - -// Needed to enable xbap scenarios -[assembly: AllowPartiallyTrustedCallers] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] -[assembly: CLSCompliant(true)] - - -[assembly: InternalsVisibleTo( "Xceed.Wpf.Toolkit.Themes.Office2007" + ",PublicKey=" + - "0024000004800000940000000602000000240000525341310004000001000100d59d8147eb2015" + - "ca98a92da860fd766d101271d8c2f545894870fd6183255737d79347bbf5250291ae75651e1150" + - "1b7452ee003b80b936614cdda51db8eb6f8fde913e67d45395b480a992be17bf04744a7fe803ea" + - "131b925dcf84a73d22264352eca7c3fcf9387f3eee1d60ac7974f04866e6c72928dc0609abe341" + - "f92cbfb5")] - -[assembly: InternalsVisibleTo( "Xceed.Wpf.Toolkit.Themes.Metro" + ",PublicKey=" + - "0024000004800000940000000602000000240000525341310004000001000100d59d8147eb2015" + - "ca98a92da860fd766d101271d8c2f545894870fd6183255737d79347bbf5250291ae75651e1150" + - "1b7452ee003b80b936614cdda51db8eb6f8fde913e67d45395b480a992be17bf04744a7fe803ea" + - "131b925dcf84a73d22264352eca7c3fcf9387f3eee1d60ac7974f04866e6c72928dc0609abe341" + - "f92cbfb5")] - -[assembly: InternalsVisibleTo( "Xceed.Wpf.Toolkit.Themes.Windows10" + ",PublicKey=" + - "0024000004800000940000000602000000240000525341310004000001000100d59d8147eb2015" + - "ca98a92da860fd766d101271d8c2f545894870fd6183255737d79347bbf5250291ae75651e1150" + - "1b7452ee003b80b936614cdda51db8eb6f8fde913e67d45395b480a992be17bf04744a7fe803ea" + - "131b925dcf84a73d22264352eca7c3fcf9387f3eee1d60ac7974f04866e6c72928dc0609abe341" + - "f92cbfb5")] - - - - - -//In order to begin building localizable applications, set -//CultureYouAreCodingWith in your .csproj file -//inside a . For example, if you are using US english -//in your source files, set the to en-US. Then uncomment -//the NeutralResourceLanguage attribute below. Update the "en-US" in -//the line below to match the UICulture setting in the project file. - -//[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)] - - -[assembly: ThemeInfo( - ResourceDictionaryLocation.SourceAssembly, //where theme specific resource dictionaries are located - //(used if a resource is not found in the page, - // or application resource dictionaries) - ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located - //(used if a resource is not found in the page, - // app, or any theme specific resource dictionaries) -)] - -[assembly: XmlnsPrefix("http://schemas.xceed.com/wpf/xaml/toolkit", "xctk")] -[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit")] -[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Core.Converters" )] -[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Core.Input" )] -[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Core.Media")] -[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Core.Utilities")] -[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Chromes")] -[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Primitives")] -[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.PropertyGrid")] -[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.PropertyGrid.Attributes")] -[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.PropertyGrid.Commands")] -[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.PropertyGrid.Converters")] -[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.PropertyGrid.Editors")] -[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Zoombox" )] -[assembly: XmlnsDefinition("http://schemas.xceed.com/wpf/xaml/toolkit", "Xceed.Wpf.Toolkit.Panels" )] - - -#pragma warning disable 1699 -[assembly: AssemblyDelaySign( false )] -[assembly: AssemblyKeyFile( @"..\..\sn.snk" )] -[assembly: AssemblyKeyName( "" )] -#pragma warning restore 1699 - - diff --git a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Xceed.Wpf.Toolkit.csproj b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Xceed.Wpf.Toolkit.csproj index 80392333..776f70b9 100644 --- a/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Xceed.Wpf.Toolkit.csproj +++ b/ExtendedWPFToolkitSolution/Src/Xceed.Wpf.Toolkit/Xceed.Wpf.Toolkit.csproj @@ -1,678 +1,16 @@ - - + - Debug - AnyCPU - 8.0.30703 - 2.0 - {72E591D6-8F83-4D8C-8F67-9C325E623234} + net8.0-windows Library - Properties - Xceed.Wpf.Toolkit - Xceed.Wpf.Toolkit - v4.0 - Client - 512 - {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 4 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 + false + true + true - - - - - - - - - - - 4.0 - - - - - - - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - MSBuild:Compile - Designer - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - Designer - MSBuild:Compile - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CollectionControlDialog.xaml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - - - - - - Code - - - - Code - - - - - - - - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -741,12 +79,6 @@ - - - ErrorMessages.cs - Designer - - @@ -782,17 +114,11 @@ - + - + + + - - \ No newline at end of file diff --git a/ExtendedWPFToolkitSolution/Xceed.Wpf.Toolkit.sln b/ExtendedWPFToolkitSolution/Xceed.Wpf.Toolkit.sln index 778d85af..090591fa 100644 --- a/ExtendedWPFToolkitSolution/Xceed.Wpf.Toolkit.sln +++ b/ExtendedWPFToolkitSolution/Xceed.Wpf.Toolkit.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xceed.Wpf.Toolkit.LiveExplorer", "Src\Xceed.Wpf.Toolkit.LiveExplorer\Xceed.Wpf.Toolkit.LiveExplorer.csproj", "{5E7DC9C8-3E27-400C-B84C-29FF9E710CB3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xceed.Wpf.Toolkit", "Src\Xceed.Wpf.Toolkit\Xceed.Wpf.Toolkit.csproj", "{72E591D6-8F83-4D8C-8F67-9C325E623234}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Xceed.Wpf.Toolkit", "Src\Xceed.Wpf.Toolkit\Xceed.Wpf.Toolkit.csproj", "{72E591D6-8F83-4D8C-8F67-9C325E623234}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Xceed.Wpf.DataGrid", "Src\Xceed.Wpf.DataGrid\Xceed.Wpf.DataGrid.csproj", "{63648392-6CE9-4A60-96D4-F9FD718D29B0}" EndProject