Browse Source

Move current contents of Avalonia.Markup to Avalonia.Base. Move Avalonia.Markup.Xaml.Data/Parser classes to Avalonia.Markup since they're not Xaml-specific.

Use pattern-matching switch.

Fix bug from cleanup.
pull/1594/head
Jeremy Koritzinsky 8 years ago
parent
commit
cf8244b37a
  1. 2
      Avalonia.sln
  2. 8
      build/Binding.props
  3. 3
      samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml.cs
  4. 7
      src/Android/Avalonia.Android/Resources/Resource.Designer.cs
  5. 1
      src/Avalonia.Base/Avalonia.Base.csproj
  6. 5
      src/Avalonia.Base/Collections/AvaloniaDictionary.cs
  7. 3
      src/Avalonia.Base/Data/BindingNotification.cs
  8. 2
      src/Avalonia.Base/Data/Converters/AlwaysEnabledDelegateCommand.cs
  9. 2
      src/Avalonia.Base/Data/Converters/BoolConverters.cs
  10. 2
      src/Avalonia.Base/Data/Converters/DefaultValueConverter.cs
  11. 2
      src/Avalonia.Base/Data/Converters/FuncMultiValueConverter.cs
  12. 2
      src/Avalonia.Base/Data/Converters/FuncValueConverter.cs
  13. 2
      src/Avalonia.Base/Data/Converters/IMultiValueConverter.cs
  14. 2
      src/Avalonia.Base/Data/Converters/IValueConverter.cs
  15. 2
      src/Avalonia.Base/Data/Converters/StringConverters.cs
  16. 4
      src/Avalonia.Base/Data/Core/BindingExpression.cs
  17. 2
      src/Avalonia.Base/Data/Core/CommonPropertyNames.cs
  18. 2
      src/Avalonia.Base/Data/Core/EmptyExpressionNode.cs
  19. 2
      src/Avalonia.Base/Data/Core/ExpressionNode.cs
  20. 4
      src/Avalonia.Base/Data/Core/ExpressionNodeBuilder.cs
  21. 45
      src/Avalonia.Base/Data/Core/ExpressionObserver.cs
  22. 4
      src/Avalonia.Base/Data/Core/ExpressionParseException.cs
  23. 2
      src/Avalonia.Base/Data/Core/ISettableNode.cs
  24. 2
      src/Avalonia.Base/Data/Core/ITransformNode.cs
  25. 2
      src/Avalonia.Base/Data/Core/IndexerNode.cs
  26. 2
      src/Avalonia.Base/Data/Core/LogicalNotNode.cs
  27. 3
      src/Avalonia.Base/Data/Core/MarkupBindingChainException.cs
  28. 2
      src/Avalonia.Base/Data/Core/Parsers/ArgumentListParser.cs
  29. 2
      src/Avalonia.Base/Data/Core/Parsers/ExpressionParser.cs
  30. 2
      src/Avalonia.Base/Data/Core/Parsers/IdentifierParser.cs
  31. 2
      src/Avalonia.Base/Data/Core/Parsers/Reader.cs
  32. 2
      src/Avalonia.Base/Data/Core/Plugins/AvaloniaPropertyAccessorPlugin.cs
  33. 2
      src/Avalonia.Base/Data/Core/Plugins/DataAnnotationsValidationPlugin.cs
  34. 2
      src/Avalonia.Base/Data/Core/Plugins/DataValidatiorBase.cs
  35. 2
      src/Avalonia.Base/Data/Core/Plugins/ExceptionValidationPlugin.cs
  36. 2
      src/Avalonia.Base/Data/Core/Plugins/IDataValidationPlugin.cs
  37. 2
      src/Avalonia.Base/Data/Core/Plugins/IPropertyAccessor.cs
  38. 2
      src/Avalonia.Base/Data/Core/Plugins/IPropertyAccessorPlugin.cs
  39. 2
      src/Avalonia.Base/Data/Core/Plugins/IStreamPlugin.cs
  40. 2
      src/Avalonia.Base/Data/Core/Plugins/IndeiValidationPlugin.cs
  41. 2
      src/Avalonia.Base/Data/Core/Plugins/InpcPropertyAccessorPlugin.cs
  42. 2
      src/Avalonia.Base/Data/Core/Plugins/MethodAccessorPlugin.cs
  43. 2
      src/Avalonia.Base/Data/Core/Plugins/ObservableStreamPlugin.cs
  44. 2
      src/Avalonia.Base/Data/Core/Plugins/PropertyAccessorBase.cs
  45. 2
      src/Avalonia.Base/Data/Core/Plugins/PropertyError.cs
  46. 2
      src/Avalonia.Base/Data/Core/Plugins/TaskStreamPlugin.cs
  47. 4
      src/Avalonia.Base/Data/Core/PropertyAccessorNode.cs
  48. 2
      src/Avalonia.Base/Data/Core/StreamNode.cs
  49. 3
      src/Avalonia.Base/Properties/AssemblyInfo.cs
  50. 6
      src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj
  51. 2
      src/Markup/Avalonia.Markup.Xaml/AvaloniaXamlLoader.cs
  52. 2
      src/Markup/Avalonia.Markup.Xaml/Converters/AvaloniaPropertyTypeConverter.cs
  53. 4
      src/Markup/Avalonia.Markup.Xaml/Converters/SelectorTypeConverter.cs
  54. 3
      src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/BindingExtension.cs
  55. 2
      src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/RelativeSourceExtension.cs
  56. 2
      src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/ResourceInclude.cs
  57. 2
      src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/StaticResourceExtension.cs
  58. 5
      src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/TemplateBindingExtension.cs
  59. 3
      src/Markup/Avalonia.Markup.Xaml/PortableXaml/AvaloniaRuntimeTypeProvider.cs
  60. 2
      src/Markup/Avalonia.Markup.Xaml/PortableXaml/AvaloniaXamlSchemaContext.cs
  61. 2
      src/Markup/Avalonia.Markup.Xaml/PortableXaml/AvaloniaXamlType.cs
  62. 2
      src/Markup/Avalonia.Markup.Xaml/Properties/AssemblyInfo.cs
  63. 2
      src/Markup/Avalonia.Markup.Xaml/Templates/MemberSelector.cs
  64. 7
      src/Markup/Avalonia.Markup.Xaml/Templates/TreeDataTemplate.cs
  65. 6
      src/Markup/Avalonia.Markup/Avalonia.Markup.csproj
  66. 7
      src/Markup/Avalonia.Markup/Data/Binding.cs
  67. 2
      src/Markup/Avalonia.Markup/Data/DelayedBinding.cs
  68. 3
      src/Markup/Avalonia.Markup/Data/MultiBinding.cs
  69. 3
      src/Markup/Avalonia.Markup/Data/RelativeSource.cs
  70. 2
      src/Markup/Avalonia.Markup/Parsers/SelectorGrammar.cs
  71. 2
      src/Markup/Avalonia.Markup/Parsers/SelectorParser.cs
  72. 2
      src/Markup/Avalonia.Markup/Properties/AssemblyInfo.cs
  73. 2
      tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Binding.cs
  74. 2
      tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Direct.cs
  75. 3
      tests/Avalonia.Base.UnitTests/Collections/AvaloniaDictionaryTests.cs
  76. 5
      tests/Avalonia.Base.UnitTests/Data/Core/BindingExpressionTests.cs
  77. 4
      tests/Avalonia.Base.UnitTests/Data/Core/ExpressionNodeBuilderTests.cs
  78. 4
      tests/Avalonia.Base.UnitTests/Data/Core/ExpressionNodeBuilderTests_Errors.cs
  79. 4
      tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_AttachedProperty.cs
  80. 4
      tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_AvaloniaProperty.cs
  81. 4
      tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_DataValidation.cs
  82. 4
      tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_Indexer.cs
  83. 4
      tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_Lifetime.cs
  84. 4
      tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_Method.cs
  85. 4
      tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_Negation.cs
  86. 4
      tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_Observable.cs
  87. 6
      tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_Property.cs
  88. 4
      tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_SetValue.cs
  89. 4
      tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_Task.cs
  90. 2
      tests/Avalonia.Base.UnitTests/Data/Core/IndeiBase.cs
  91. 2
      tests/Avalonia.Base.UnitTests/Data/Core/Plugins/DataAnnotationsValidationPluginTests.cs
  92. 4
      tests/Avalonia.Base.UnitTests/Data/Core/Plugins/ExceptionValidationPluginTests.cs
  93. 4
      tests/Avalonia.Base.UnitTests/Data/Core/Plugins/IndeiValidationPluginTests.cs
  94. 3
      tests/Avalonia.Base.UnitTests/Data/DefaultValueConverterTests.cs
  95. 2
      tests/Avalonia.Base.UnitTests/Data/UnitTestSynchronizationContext.cs
  96. 2
      tests/Avalonia.Controls.UnitTests/AutoCompleteBoxTests.cs
  97. 2
      tests/Avalonia.Controls.UnitTests/ButtonTests.cs
  98. 2
      tests/Avalonia.Controls.UnitTests/ContentControlTests.cs
  99. 2
      tests/Avalonia.Controls.UnitTests/DatePickerTests.cs
  100. 2
      tests/Avalonia.Controls.UnitTests/ListBoxTests_Single.cs

2
Avalonia.sln

@ -138,6 +138,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{74487168
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Props", "Props", "{F3AC8BC1-27F5-4255-9AFC-04ABFD11683A}"
ProjectSection(SolutionItems) = preProject
build\Base.props = build\Base.props
build\Binding.props = build\Binding.props
build\JetBrains.Annotations.props = build\JetBrains.Annotations.props
build\JetBrains.dotMemoryUnit.props = build\JetBrains.dotMemoryUnit.props
build\Magick.NET-Q16-AnyCPU.props = build\Magick.NET-Q16-AnyCPU.props

8
build/Binding.props

@ -0,0 +1,8 @@
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<PackageReference Include="System.ComponentModel.Annotations" Version="4.3.0" />
<PackageReference Include="System.ComponentModel.TypeConverter" Version="4.3.0" />
<PackageReference Include="System.ComponentModel.Primitives" Version="4.3.0" />
<PackageReference Include="System.Runtime.Serialization.Primitives" Version="4.3.0" />
</ItemGroup>
</Project>

3
samples/ControlCatalog/Pages/AutoCompleteBoxPage.xaml.cs

@ -2,12 +2,13 @@ using Avalonia.Controls;
using Avalonia.LogicalTree;
using Avalonia.Markup;
using Avalonia.Markup.Xaml;
using Avalonia.Markup.Xaml.Data;
using Avalonia.Markup.Data;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using Avalonia.Data.Converters;
namespace ControlCatalog.Pages
{

7
src/Android/Avalonia.Android/Resources/Resource.Designer.cs

@ -40,11 +40,14 @@ namespace Avalonia.Android
public partial class String
{
// aapt resource value: 0x7f020002
public static int ApplicationName = 2130837506;
// aapt resource value: 0x7f020001
public static int ApplicationName = 2130837505;
public static int Hello = 2130837505;
// aapt resource value: 0x7f020000
public static int Hello = 2130837504;
public static int library_name = 2130837504;
static String()
{

1
src/Avalonia.Base/Avalonia.Base.csproj

@ -5,6 +5,7 @@
<RootNamespace>Avalonia</RootNamespace>
</PropertyGroup>
<Import Project="..\..\build\Base.props" />
<Import Project="..\..\build\Binding.props" />
<Import Project="..\..\build\Rx.props" />
<Import Project="..\..\build\JetBrains.Annotations.props" />
</Project>

5
src/Avalonia.Base/Collections/AvaloniaDictionary.cs

@ -7,6 +7,7 @@ using System.Collections.Generic;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Linq;
using Avalonia.Data.Core;
namespace Avalonia.Collections
{
@ -116,8 +117,8 @@ namespace Avalonia.Collections
_inner = new Dictionary<TKey, TValue>();
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Count"));
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("Item[]"));
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(Count)));
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(CommonPropertyNames.IndexerName));
if (CollectionChanged != null)

3
src/Avalonia.Base/Data/BindingNotification.cs

@ -171,8 +171,7 @@ namespace Avalonia.Data
/// </remarks>
public static object ExtractError(object o)
{
var notification = o as BindingNotification;
return notification != null ? notification.Error : o;
return o is BindingNotification notification ? notification.Error : o;
}
/// <summary>

2
src/Markup/Avalonia.Markup/AlwaysEnabledDelegateCommand.cs → src/Avalonia.Base/Data/Converters/AlwaysEnabledDelegateCommand.cs

@ -6,7 +6,7 @@ using System.Reflection;
using System.Text;
using System.Windows.Input;
namespace Avalonia.Markup
namespace Avalonia.Data.Converters
{
class AlwaysEnabledDelegateCommand : ICommand
{

2
src/Markup/Avalonia.Markup/BoolConverters.cs → src/Avalonia.Base/Data/Converters/BoolConverters.cs

@ -3,7 +3,7 @@
using System.Linq;
namespace Avalonia.Markup
namespace Avalonia.Data.Converters
{
/// <summary>
/// Provides a set of useful <see cref="IValueConverter"/>s for working with string values.

2
src/Markup/Avalonia.Markup/DefaultValueConverter.cs → src/Avalonia.Base/Data/Converters/DefaultValueConverter.cs

@ -7,7 +7,7 @@ using Avalonia.Data;
using Avalonia.Utilities;
using System.Windows.Input;
namespace Avalonia.Markup
namespace Avalonia.Data.Converters
{
/// <summary>
/// Provides a default set of value conversions for bindings that do not specify a value

2
src/Markup/Avalonia.Markup/FuncMultiValueConverter.cs → src/Avalonia.Base/Data/Converters/FuncMultiValueConverter.cs

@ -6,7 +6,7 @@ using System.Collections.Generic;
using System.Globalization;
using System.Linq;
namespace Avalonia.Markup
namespace Avalonia.Data.Converters
{
/// <summary>
/// A general purpose <see cref="IValueConverter"/> that uses a <see cref="Func{T1, TResult}"/>

2
src/Markup/Avalonia.Markup/FuncValueConverter.cs → src/Avalonia.Base/Data/Converters/FuncValueConverter.cs

@ -5,7 +5,7 @@ using System;
using System.Globalization;
using Avalonia.Utilities;
namespace Avalonia.Markup
namespace Avalonia.Data.Converters
{
/// <summary>
/// A general purpose <see cref="IValueConverter"/> that uses a <see cref="Func{T1, TResult}"/>

2
src/Markup/Avalonia.Markup/IMultiValueConverter.cs → src/Avalonia.Base/Data/Converters/IMultiValueConverter.cs

@ -5,7 +5,7 @@ using System;
using System.Collections.Generic;
using System.Globalization;
namespace Avalonia.Markup
namespace Avalonia.Data.Converters
{
/// <summary>
/// Converts multi-binding inputs to a final value.

2
src/Markup/Avalonia.Markup/IValueConverter.cs → src/Avalonia.Base/Data/Converters/IValueConverter.cs

@ -5,7 +5,7 @@ using System;
using System.Globalization;
using Avalonia.Data;
namespace Avalonia.Markup
namespace Avalonia.Data.Converters
{
/// <summary>
/// Converts a binding value.

2
src/Markup/Avalonia.Markup/StringConverters.cs → src/Avalonia.Base/Data/Converters/StringConverters.cs

@ -5,7 +5,7 @@ using System;
using System.Globalization;
using Avalonia.Utilities;
namespace Avalonia.Markup
namespace Avalonia.Data.Converters
{
/// <summary>
/// Provides a set of useful <see cref="IValueConverter"/>s for working with string values.

4
src/Markup/Avalonia.Markup/Data/BindingExpression.cs → src/Avalonia.Base/Data/Core/BindingExpression.cs

@ -5,11 +5,11 @@ using System;
using System.Globalization;
using System.Reactive.Linq;
using System.Reactive.Subjects;
using Avalonia.Data;
using Avalonia.Data.Converters;
using Avalonia.Logging;
using Avalonia.Utilities;
namespace Avalonia.Markup.Data
namespace Avalonia.Data.Core
{
/// <summary>
/// Binds to an expression on an object using a type value converter to convert the values

2
src/Markup/Avalonia.Markup/Data/CommonPropertyNames.cs → src/Avalonia.Base/Data/Core/CommonPropertyNames.cs

@ -1,7 +1,7 @@
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
namespace Avalonia.Markup.Data
namespace Avalonia.Data.Core
{
public static class CommonPropertyNames
{

2
src/Markup/Avalonia.Markup/Data/EmptyExpressionNode.cs → src/Avalonia.Base/Data/Core/EmptyExpressionNode.cs

@ -4,7 +4,7 @@
using System;
using System.Reactive.Linq;
namespace Avalonia.Markup.Data
namespace Avalonia.Data.Core
{
internal class EmptyExpressionNode : ExpressionNode
{

2
src/Markup/Avalonia.Markup/Data/ExpressionNode.cs → src/Avalonia.Base/Data/Core/ExpressionNode.cs

@ -7,7 +7,7 @@ using System.Reactive.Linq;
using System.Reactive.Subjects;
using Avalonia.Data;
namespace Avalonia.Markup.Data
namespace Avalonia.Data.Core
{
internal abstract class ExpressionNode : ISubject<object>
{

4
src/Markup/Avalonia.Markup/Data/ExpressionNodeBuilder.cs → src/Avalonia.Base/Data/Core/ExpressionNodeBuilder.cs

@ -2,9 +2,9 @@
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using System;
using Avalonia.Markup.Data.Parsers;
using Avalonia.Data.Core.Parsers;
namespace Avalonia.Markup.Data
namespace Avalonia.Data.Core
{
internal static class ExpressionNodeBuilder
{

45
src/Markup/Avalonia.Markup/Data/ExpressionObserver.cs → src/Avalonia.Base/Data/Core/ExpressionObserver.cs

@ -8,9 +8,9 @@ using System.Reactive.Disposables;
using System.Reactive.Linq;
using System.Reactive.Subjects;
using Avalonia.Data;
using Avalonia.Markup.Data.Plugins;
using Avalonia.Data.Core.Plugins;
namespace Avalonia.Markup.Data
namespace Avalonia.Data.Core
{
/// <summary>
/// Observes and sets the value of an expression on an object.
@ -245,40 +245,35 @@ namespace Avalonia.Markup.Data
private object Translate(object o)
{
var weak = o as WeakReference;
if (weak != null)
if (o is WeakReference weak)
{
return weak.Target;
}
else
else if (BindingNotification.ExtractError(o) is MarkupBindingChainException broken)
{
var broken = BindingNotification.ExtractError(o) as MarkupBindingChainException;
if (broken != null)
{
broken.Commit(Description);
}
return o;
broken.Commit(Description);
}
return o;
}
private IDisposable StartRoot()
{
var observable = _root as IObservable<object>;
if (observable != null)
switch (_root)
{
return observable.Subscribe(
x => _node.Target = new WeakReference(x != AvaloniaProperty.UnsetValue ? x : null),
_ => _finished.OnNext(Unit.Default),
() => _finished.OnNext(Unit.Default));
}
else
{
_node.Target = (WeakReference)_root;
return Disposable.Empty;
case IObservable<object> observable:
return observable.Subscribe(
x => _node.Target = new WeakReference(x != AvaloniaProperty.UnsetValue ? x : null),
_ => _finished.OnNext(Unit.Default),
() => _finished.OnNext(Unit.Default));
case WeakReference weak:
_node.Target = weak;
break;
default:
throw new AvaloniaInternalException("The ExpressionObserver._root member should only be either an observable or WeakReference.");
}
return Disposable.Empty;
}
}
}

4
src/Markup/Avalonia.Markup/Data/ExpressionParseException.cs → src/Avalonia.Base/Data/Core/ExpressionParseException.cs

@ -2,9 +2,9 @@
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using System;
using Avalonia.Markup.Data.Parsers;
using Avalonia.Data.Core.Parsers;
namespace Avalonia.Markup.Data
namespace Avalonia.Data.Core
{
/// <summary>
/// Exception thrown when <see cref="ExpressionObserver"/> could not parse the provided

2
src/Markup/Avalonia.Markup/Data/ISettableNode.cs → src/Avalonia.Base/Data/Core/ISettableNode.cs

@ -5,7 +5,7 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Avalonia.Markup.Data
namespace Avalonia.Data.Core
{
interface ISettableNode
{

2
src/Markup/Avalonia.Markup/Data/ITransformNode.cs → src/Avalonia.Base/Data/Core/ITransformNode.cs

@ -2,7 +2,7 @@
using System.Collections.Generic;
using System.Text;
namespace Avalonia.Markup.Data
namespace Avalonia.Data.Core
{
interface ITransformNode
{

2
src/Markup/Avalonia.Markup/Data/IndexerNode.cs → src/Avalonia.Base/Data/Core/IndexerNode.cs

@ -13,7 +13,7 @@ using System.Reflection;
using System.Reactive.Linq;
using Avalonia.Data;
namespace Avalonia.Markup.Data
namespace Avalonia.Data.Core
{
internal class IndexerNode : ExpressionNode, ISettableNode
{

2
src/Markup/Avalonia.Markup/Data/LogicalNotNode.cs → src/Avalonia.Base/Data/Core/LogicalNotNode.cs

@ -5,7 +5,7 @@ using System;
using System.Globalization;
using Avalonia.Data;
namespace Avalonia.Markup.Data
namespace Avalonia.Data.Core
{
internal class LogicalNotNode : ExpressionNode, ITransformNode
{

3
src/Markup/Avalonia.Markup/Data/MarkupBindingChainException.cs → src/Avalonia.Base/Data/Core/MarkupBindingChainException.cs

@ -1,9 +1,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Avalonia.Data;
namespace Avalonia.Markup.Data
namespace Avalonia.Data.Core
{
internal class MarkupBindingChainException : BindingChainException
{

2
src/Markup/Avalonia.Markup/Data/Parsers/ArgumentListParser.cs → src/Avalonia.Base/Data/Core/Parsers/ArgumentListParser.cs

@ -5,7 +5,7 @@ using System;
using System.Collections.Generic;
using System.Text;
namespace Avalonia.Markup.Data.Parsers
namespace Avalonia.Data.Core.Parsers
{
internal static class ArgumentListParser
{

2
src/Markup/Avalonia.Markup/Data/Parsers/ExpressionParser.cs → src/Avalonia.Base/Data/Core/Parsers/ExpressionParser.cs

@ -5,7 +5,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
namespace Avalonia.Markup.Data.Parsers
namespace Avalonia.Data.Core.Parsers
{
internal class ExpressionParser
{

2
src/Markup/Avalonia.Markup/Data/Parsers/IdentifierParser.cs → src/Avalonia.Base/Data/Core/Parsers/IdentifierParser.cs

@ -4,7 +4,7 @@
using System.Globalization;
using System.Text;
namespace Avalonia.Markup.Data.Parsers
namespace Avalonia.Data.Core.Parsers
{
internal static class IdentifierParser
{

2
src/Markup/Avalonia.Markup/Data/Parsers/Reader.cs → src/Avalonia.Base/Data/Core/Parsers/Reader.cs

@ -3,7 +3,7 @@
using System;
namespace Avalonia.Markup.Data.Parsers
namespace Avalonia.Data.Core.Parsers
{
internal class Reader
{

2
src/Markup/Avalonia.Markup/Data/Plugins/AvaloniaPropertyAccessorPlugin.cs → src/Avalonia.Base/Data/Core/Plugins/AvaloniaPropertyAccessorPlugin.cs

@ -6,7 +6,7 @@ using System.Linq;
using System.Reactive.Linq;
using Avalonia.Data;
namespace Avalonia.Markup.Data.Plugins
namespace Avalonia.Data.Core.Plugins
{
/// <summary>
/// Reads a property from a <see cref="AvaloniaObject"/>.

2
src/Markup/Avalonia.Markup/Data/Plugins/DataAnnotationsValidationPlugin.cs → src/Avalonia.Base/Data/Core/Plugins/DataAnnotationsValidationPlugin.cs

@ -8,7 +8,7 @@ using System.Linq;
using System.Reflection;
using Avalonia.Data;
namespace Avalonia.Markup.Data.Plugins
namespace Avalonia.Data.Core.Plugins
{
/// <summary>
/// Validates properties on that have <see cref="ValidationAttribute"/>s.

2
src/Markup/Avalonia.Markup/Data/Plugins/DataValidatiorBase.cs → src/Avalonia.Base/Data/Core/Plugins/DataValidatiorBase.cs

@ -4,7 +4,7 @@
using System;
using Avalonia.Data;
namespace Avalonia.Markup.Data.Plugins
namespace Avalonia.Data.Core.Plugins
{
/// <summary>
/// Base class for data validators.

2
src/Markup/Avalonia.Markup/Data/Plugins/ExceptionValidationPlugin.cs → src/Avalonia.Base/Data/Core/Plugins/ExceptionValidationPlugin.cs

@ -5,7 +5,7 @@ using Avalonia.Data;
using System;
using System.Reflection;
namespace Avalonia.Markup.Data.Plugins
namespace Avalonia.Data.Core.Plugins
{
/// <summary>
/// Validates properties that report errors by throwing exceptions.

2
src/Markup/Avalonia.Markup/Data/Plugins/IDataValidationPlugin.cs → src/Avalonia.Base/Data/Core/Plugins/IDataValidationPlugin.cs

@ -4,7 +4,7 @@
using System;
using Avalonia.Data;
namespace Avalonia.Markup.Data.Plugins
namespace Avalonia.Data.Core.Plugins
{
/// <summary>
/// Defines how data validation is observed by an <see cref="ExpressionObserver"/>.

2
src/Markup/Avalonia.Markup/Data/Plugins/IPropertyAccessor.cs → src/Avalonia.Base/Data/Core/Plugins/IPropertyAccessor.cs

@ -4,7 +4,7 @@
using System;
using Avalonia.Data;
namespace Avalonia.Markup.Data.Plugins
namespace Avalonia.Data.Core.Plugins
{
/// <summary>
/// Defines an accessor to a property on an object returned by a

2
src/Markup/Avalonia.Markup/Data/Plugins/IPropertyAccessorPlugin.cs → src/Avalonia.Base/Data/Core/Plugins/IPropertyAccessorPlugin.cs

@ -3,7 +3,7 @@
using System;
namespace Avalonia.Markup.Data.Plugins
namespace Avalonia.Data.Core.Plugins
{
/// <summary>
/// Defines how a member is read, written and observed by an

2
src/Markup/Avalonia.Markup/Data/Plugins/IStreamPlugin.cs → src/Avalonia.Base/Data/Core/Plugins/IStreamPlugin.cs

@ -3,7 +3,7 @@
using System;
namespace Avalonia.Markup.Data.Plugins
namespace Avalonia.Data.Core.Plugins
{
/// <summary>
/// Defines a plugin that handles the '^' stream binding operator.

2
src/Markup/Avalonia.Markup/Data/Plugins/IndeiValidationPlugin.cs → src/Avalonia.Base/Data/Core/Plugins/IndeiValidationPlugin.cs

@ -8,7 +8,7 @@ using System.Linq;
using Avalonia.Data;
using Avalonia.Utilities;
namespace Avalonia.Markup.Data.Plugins
namespace Avalonia.Data.Core.Plugins
{
/// <summary>
/// Validates properties on objects that implement <see cref="INotifyDataErrorInfo"/>.

2
src/Markup/Avalonia.Markup/Data/Plugins/InpcPropertyAccessorPlugin.cs → src/Avalonia.Base/Data/Core/Plugins/InpcPropertyAccessorPlugin.cs

@ -10,7 +10,7 @@ using Avalonia.Data;
using Avalonia.Logging;
using Avalonia.Utilities;
namespace Avalonia.Markup.Data.Plugins
namespace Avalonia.Data.Core.Plugins
{
/// <summary>
/// Reads a property from a standard C# object that optionally supports the

2
src/Markup/Avalonia.Markup/Data/Plugins/MethodAccessorPlugin.cs → src/Avalonia.Base/Data/Core/Plugins/MethodAccessorPlugin.cs

@ -5,7 +5,7 @@ using Avalonia.Data;
using System.Reflection;
using System.Linq;
namespace Avalonia.Markup.Data.Plugins
namespace Avalonia.Data.Core.Plugins
{
class MethodAccessorPlugin : IPropertyAccessorPlugin
{

2
src/Markup/Avalonia.Markup/Data/Plugins/ObservableStreamPlugin.cs → src/Avalonia.Base/Data/Core/Plugins/ObservableStreamPlugin.cs

@ -3,7 +3,7 @@
using System;
namespace Avalonia.Markup.Data.Plugins
namespace Avalonia.Data.Core.Plugins
{
/// <summary>
/// Handles binding to <see cref="IObservable{T}"/>s for the '^' stream binding operator.

2
src/Markup/Avalonia.Markup/Data/Plugins/PropertyAccessorBase.cs → src/Avalonia.Base/Data/Core/Plugins/PropertyAccessorBase.cs

@ -4,7 +4,7 @@
using System;
using Avalonia.Data;
namespace Avalonia.Markup.Data.Plugins
namespace Avalonia.Data.Core.Plugins
{
/// <summary>
/// Defines a default base implementation for a <see cref="IPropertyAccessor"/>.

2
src/Markup/Avalonia.Markup/Data/Plugins/PropertyError.cs → src/Avalonia.Base/Data/Core/Plugins/PropertyError.cs

@ -2,7 +2,7 @@ using System;
using System.Reactive.Disposables;
using Avalonia.Data;
namespace Avalonia.Markup.Data.Plugins
namespace Avalonia.Data.Core.Plugins
{
/// <summary>
/// An <see cref="IPropertyAccessor"/> that represents an error.

2
src/Markup/Avalonia.Markup/Data/Plugins/TaskStreamPlugin.cs → src/Avalonia.Base/Data/Core/Plugins/TaskStreamPlugin.cs

@ -9,7 +9,7 @@ using System.Reflection;
using System.Threading.Tasks;
using Avalonia.Data;
namespace Avalonia.Markup.Data.Plugins
namespace Avalonia.Data.Core.Plugins
{
/// <summary>
/// Handles binding to <see cref="Task"/>s for the '^' stream binding operator.

4
src/Markup/Avalonia.Markup/Data/PropertyAccessorNode.cs → src/Avalonia.Base/Data/Core/PropertyAccessorNode.cs

@ -6,9 +6,9 @@ using System.Linq;
using System.Reactive.Disposables;
using System.Reactive.Linq;
using Avalonia.Data;
using Avalonia.Markup.Data.Plugins;
using Avalonia.Data.Core.Plugins;
namespace Avalonia.Markup.Data
namespace Avalonia.Data.Core
{
internal class PropertyAccessorNode : ExpressionNode, ISettableNode
{

2
src/Markup/Avalonia.Markup/Data/StreamNode.cs → src/Avalonia.Base/Data/Core/StreamNode.cs

@ -6,7 +6,7 @@ using System.Globalization;
using Avalonia.Data;
using System.Reactive.Linq;
namespace Avalonia.Markup.Data
namespace Avalonia.Data.Core
{
internal class StreamNode : ExpressionNode
{

3
src/Avalonia.Base/Properties/AssemblyInfo.cs

@ -1,9 +1,10 @@
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using System.Reflection;
using System.Runtime.CompilerServices;
using Avalonia.Metadata;
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Data.Converters")]
[assembly: InternalsVisibleTo("Avalonia.Base.UnitTests")]
[assembly: InternalsVisibleTo("Avalonia.UnitTests")]
[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]

6
src/Markup/Avalonia.Markup.Xaml/Avalonia.Markup.Xaml.csproj

@ -32,6 +32,7 @@
<Compile Include="Converters\TimeSpanTypeConverter.cs" />
<Compile Include="Data\ResourceInclude.cs" />
<Compile Include="MarkupExtensions\DynamicResourceExtension.cs" />
<Compile Include="MarkupExtensions\ResourceInclude.cs" />
<Compile Include="MarkupExtensions\StaticResourceExtension.cs" />
<Compile Include="MarkupExtensions\StyleIncludeExtension.cs" />
<Compile Include="PortableXaml\AvaloniaXamlContext.cs" />
@ -51,11 +52,11 @@
<Compile Include="Data\DelayedBinding.cs" />
<Compile Include="Data\MultiBinding.cs" />
<Compile Include="Data\RelativeSource.cs" />
<Compile Include="Converters\ThicknessTypeConverter.cs" />
<Compile Include="Converters\TimeSpanTypeConverter.cs" />
<Compile Include="MarkupExtensions\BindingExtension.cs" />
<Compile Include="MarkupExtensions\RelativeSourceExtension.cs" />
<Compile Include="MarkupExtensions\TemplateBindingExtension.cs" />
<Compile Include="Parsers\SelectorGrammar.cs" />
<Compile Include="Parsers\SelectorParser.cs" />
<Compile Include="PortableXaml\AvaloniaTypeAttributeProvider.cs" />
<Compile Include="PortableXaml\AvaloniaXamlType.cs" />
<Compile Include="PortableXaml\TypeDescriptorExtensions.cs" />
@ -86,6 +87,5 @@
<ProjectReference Include="..\Avalonia.Markup\Avalonia.Markup.csproj" />
</ItemGroup>
<Import Project="..\..\..\build\Markup.props" />
<Import Project="..\..\..\build\Sprache.props" />
<Import Project="..\..\..\build\Rx.props" />
</Project>

2
src/Markup/Avalonia.Markup.Xaml/AvaloniaXamlLoader.cs

@ -2,7 +2,7 @@
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using Avalonia.Controls;
using Avalonia.Markup.Xaml.Data;
using Avalonia.Markup.Data;
using Avalonia.Markup.Xaml.PortableXaml;
using Avalonia.Platform;
using Portable.Xaml;

2
src/Markup/Avalonia.Markup.Xaml/Converters/AvaloniaPropertyTypeConverter.cs

@ -10,7 +10,7 @@ namespace Avalonia.Markup.Xaml.Converters
using Avalonia.Styling;
using Portable.Xaml;
using Portable.Xaml.ComponentModel;
using System.ComponentModel;
using System.ComponentModel;
using Portable.Xaml.Markup;
public class AvaloniaPropertyTypeConverter : TypeConverter

4
src/Markup/Avalonia.Markup.Xaml/Converters/SelectorTypeConverter.cs

@ -3,12 +3,12 @@
using System;
using System.Globalization;
using Avalonia.Markup.Xaml.Parsers;
using Avalonia.Markup.Parsers;
namespace Avalonia.Markup.Xaml.Converters
{
using Portable.Xaml.ComponentModel;
using System.ComponentModel;
using System.ComponentModel;
public class SelectorTypeConverter : TypeConverter
{

3
src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/BindingExtension.cs

@ -2,12 +2,13 @@
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using Avalonia.Data;
using Avalonia.Markup.Xaml.Data;
using System;
namespace Avalonia.Markup.Xaml.MarkupExtensions
{
using Avalonia.Controls;
using Avalonia.Data.Converters;
using Avalonia.Markup.Data;
using Avalonia.Styling;
using Portable.Xaml;
using Portable.Xaml.ComponentModel;

2
src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/RelativeSourceExtension.cs

@ -1,7 +1,7 @@
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using Avalonia.Markup.Xaml.Data;
using Avalonia.Markup.Data;
namespace Avalonia.Markup.Xaml.MarkupExtensions
{

2
src/Markup/Avalonia.Markup.Xaml/Data/ResourceInclude.cs → src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/ResourceInclude.cs

@ -4,7 +4,7 @@ using Avalonia.Controls;
using Portable.Xaml.ComponentModel;
using Portable.Xaml.Markup;
namespace Avalonia.Markup.Xaml.Data
namespace Avalonia.Markup.Xaml.MarkupExtensions
{
/// <summary>
/// Loads a resource dictionary from a specified URL.

2
src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/StaticResourceExtension.cs

@ -6,7 +6,7 @@ using System.Collections.Generic;
using System.ComponentModel;
using System.Reflection;
using Avalonia.Controls;
using Avalonia.Markup.Xaml.Data;
using Avalonia.Markup.Data;
using Portable.Xaml;
using Portable.Xaml.ComponentModel;
using Portable.Xaml.Markup;

5
src/Markup/Avalonia.Markup.Xaml/MarkupExtensions/TemplateBindingExtension.cs

@ -2,14 +2,15 @@
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using Avalonia.Data;
using Avalonia.Markup.Xaml.Data;
namespace Avalonia.Markup.Xaml.MarkupExtensions
{
using System;
using Avalonia.Data.Converters;
using Avalonia.Markup.Data;
using Portable.Xaml.Markup;
[MarkupExtensionReturnType(typeof(Binding))]
[MarkupExtensionReturnType(typeof(IBinding))]
public class TemplateBindingExtension : MarkupExtension
{
public TemplateBindingExtension()

3
src/Markup/Avalonia.Markup.Xaml/PortableXaml/AvaloniaRuntimeTypeProvider.cs

@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using Avalonia.Controls;
using Avalonia.Markup.Data;
using Avalonia.Markup.Xaml.Templates;
using Avalonia.Media;
using Avalonia.Metadata;
@ -35,7 +36,7 @@ namespace Avalonia.Markup.Xaml.Context
typeof(Style).GetTypeInfo().Assembly,
typeof(DataTemplate).GetTypeInfo().Assembly,
typeof(SolidColorBrush).GetTypeInfo().Assembly,
typeof(IValueConverter).GetTypeInfo().Assembly,
typeof(Binding).GetTypeInfo().Assembly,
};
private Dictionary<string, HashSet<ClrNamespaceInfo>> _namespaces = new Dictionary<string, HashSet<ClrNamespaceInfo>>();

2
src/Markup/Avalonia.Markup.Xaml/PortableXaml/AvaloniaXamlSchemaContext.cs

@ -1,6 +1,6 @@
using Avalonia.Data;
using Avalonia.Markup.Xaml.Context;
using Avalonia.Markup.Xaml.Data;
using Avalonia.Markup.Data;
using Avalonia.Markup.Xaml.MarkupExtensions;
using Avalonia.Markup.Xaml.Styling;
using Portable.Xaml;

2
src/Markup/Avalonia.Markup.Xaml/PortableXaml/AvaloniaXamlType.cs

@ -1,6 +1,6 @@
using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Markup.Xaml.Data;
using Avalonia.Markup.Data;
using Avalonia.Metadata;
using Avalonia.Styling;
using Portable.Xaml;

2
src/Markup/Avalonia.Markup.Xaml/Properties/AssemblyInfo.cs

@ -5,10 +5,8 @@ using System.Reflection;
using Avalonia.Metadata;
using System.Runtime.CompilerServices;
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Markup.Xaml.Data")]
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Markup.Xaml.MarkupExtensions")]
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Markup.Xaml.Styling")]
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Markup.Xaml.Templates")]
[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml", "Avalonia.Markup.Xaml.MarkupExtensions.Standard")]
[assembly: InternalsVisibleTo("Avalonia.Markup.Xaml.UnitTests")]

2
src/Markup/Avalonia.Markup.Xaml/Templates/MemberSelector.cs

@ -3,7 +3,7 @@
using Avalonia.Controls.Templates;
using Avalonia.Data;
using Avalonia.Markup.Data;
using Avalonia.Data.Core;
using System;
using System.Reactive.Linq;

7
src/Markup/Avalonia.Markup.Xaml/Templates/TreeDataTemplate.cs

@ -6,8 +6,8 @@ using System.Reflection;
using Avalonia.Controls;
using Avalonia.Controls.Templates;
using Avalonia.Data;
using Avalonia.Data.Core;
using Avalonia.Markup.Data;
using Avalonia.Markup.Xaml.Data;
using Avalonia.Metadata;
namespace Avalonia.Markup.Xaml.Templates
@ -48,11 +48,6 @@ namespace Avalonia.Markup.Xaml.Templates
return null;
}
public bool IsExpanded(object item)
{
return true;
}
public IControl Build(object data)
{
var visualTreeForItem = TemplateContent.Load(Content);

6
src/Markup/Avalonia.Markup/Avalonia.Markup.csproj

@ -4,7 +4,11 @@
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\..\Avalonia.Base\Avalonia.Base.csproj" />
<ProjectReference Include="..\..\Avalonia.Controls\Avalonia.Controls.csproj" />
<ProjectReference Include="..\..\Avalonia.Input\Avalonia.Input.csproj" />
<ProjectReference Include="..\..\Avalonia.Styling\Avalonia.Styling.csproj" />
<ProjectReference Include="..\..\Avalonia.Visuals\Avalonia.Visuals.csproj" />
</ItemGroup>
<Import Project="..\..\..\build\Markup.props" />
<Import Project="..\..\..\build\Rx.props" />
<Import Project="..\..\..\build\Sprache.props" />
</Project>

7
src/Markup/Avalonia.Markup.Xaml/Data/Binding.cs → src/Markup/Avalonia.Markup/Data/Binding.cs

@ -8,11 +8,12 @@ using System.Reactive.Linq;
using System.Reflection;
using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Data.Converters;
using Avalonia.Data.Core;
using Avalonia.LogicalTree;
using Avalonia.Markup.Data;
using Avalonia.VisualTree;
namespace Avalonia.Markup.Xaml.Data
namespace Avalonia.Markup.Data
{
/// <summary>
/// A XAML binding.
@ -84,7 +85,7 @@ namespace Avalonia.Markup.Xaml.Data
/// </summary>
public object Source { get; set; }
internal WeakReference DefaultAnchor { get; set; }
public WeakReference DefaultAnchor { get; set; }
/// <inheritdoc/>
public InstancedBinding Initiate(

2
src/Markup/Avalonia.Markup.Xaml/Data/DelayedBinding.cs → src/Markup/Avalonia.Markup/Data/DelayedBinding.cs

@ -9,7 +9,7 @@ using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Logging;
namespace Avalonia.Markup.Xaml.Data
namespace Avalonia.Markup.Data
{
/// <summary>
/// Provides delayed bindings for controls.

3
src/Markup/Avalonia.Markup.Xaml/Data/MultiBinding.cs → src/Markup/Avalonia.Markup/Data/MultiBinding.cs

@ -9,9 +9,10 @@ using System.Reactive.Linq;
using System.Reactive.Subjects;
using Avalonia.Controls;
using Avalonia.Data;
using Avalonia.Data.Converters;
using Avalonia.Metadata;
namespace Avalonia.Markup.Xaml.Data
namespace Avalonia.Markup.Data
{
/// <summary>
/// A XAML binding that calculates an aggregate value from multiple child <see cref="Bindings"/>.

3
src/Markup/Avalonia.Markup.Xaml/Data/RelativeSource.cs → src/Markup/Avalonia.Markup/Data/RelativeSource.cs

@ -2,8 +2,9 @@
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using System;
using Avalonia.Controls;
namespace Avalonia.Markup.Xaml.Data
namespace Avalonia.Markup.Data
{
/// <summary>
/// Defines the mode of a <see cref="RelativeSource"/> object.

2
src/Markup/Avalonia.Markup.Xaml/Parsers/SelectorGrammar.cs → src/Markup/Avalonia.Markup/Parsers/SelectorGrammar.cs

@ -9,7 +9,7 @@ using Sprache;
// only reason they have overridden Equals methods is for unit testing.
#pragma warning disable 659
namespace Avalonia.Markup.Xaml.Parsers
namespace Avalonia.Markup.Parsers
{
internal class SelectorGrammar
{

2
src/Markup/Avalonia.Markup.Xaml/Parsers/SelectorParser.cs → src/Markup/Avalonia.Markup/Parsers/SelectorParser.cs

@ -7,7 +7,7 @@ using Avalonia.Styling;
using Avalonia.Utilities;
using Sprache;
namespace Avalonia.Markup.Xaml.Parsers
namespace Avalonia.Markup.Parsers
{
/// <summary>
/// Parses a <see cref="Selector"/> from text.

2
src/Markup/Avalonia.Markup/Properties/AssemblyInfo.cs

@ -5,5 +5,5 @@ using System.Reflection;
using Avalonia.Metadata;
using System.Runtime.CompilerServices;
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Markup")]
[assembly: XmlnsDefinition("https://github.com/avaloniaui", "Avalonia.Markup.Data")]
[assembly: InternalsVisibleTo("Avalonia.Markup.UnitTests")]

2
tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Binding.cs

@ -10,7 +10,7 @@ using System.Threading;
using System.Threading.Tasks;
using Avalonia.Data;
using Avalonia.Logging;
using Avalonia.Markup.Xaml.Data;
using Avalonia.Markup.Data;
using Avalonia.Platform;
using Avalonia.Threading;
using Avalonia.UnitTests;

2
tests/Avalonia.Base.UnitTests/AvaloniaObjectTests_Direct.cs

@ -12,7 +12,7 @@ using Avalonia.Data;
using Avalonia.Logging;
using Avalonia.Platform;
using Avalonia.Threading;
using Avalonia.Markup.Xaml.Data;
using Avalonia.Markup.Data;
using Avalonia.UnitTests;
using Moq;
using Xunit;

3
tests/Avalonia.Base.UnitTests/Collections/AvaloniaDictionaryTests.cs

@ -4,6 +4,7 @@
using System.Collections.Generic;
using System.Collections.Specialized;
using Avalonia.Collections;
using Avalonia.Data.Core;
using Xunit;
namespace Avalonia.Base.UnitTests.Collections
@ -145,7 +146,7 @@ namespace Avalonia.Base.UnitTests.Collections
var tracker = new PropertyChangedTracker(target);
target.Clear();
Assert.Equal(new[] { "Count", "Item[]" }, tracker.Names);
Assert.Equal(new[] { "Count", CommonPropertyNames.IndexerName }, tracker.Names);
}
}
}

5
tests/Avalonia.Markup.UnitTests/Data/BindingExpressionTests.cs → tests/Avalonia.Base.UnitTests/Data/Core/BindingExpressionTests.cs

@ -8,12 +8,13 @@ using System.Reactive.Linq;
using System.Threading;
using System.Threading.Tasks;
using Avalonia.Data;
using Avalonia.Markup.Data;
using Avalonia.Data.Converters;
using Avalonia.Data.Core;
using Avalonia.UnitTests;
using Moq;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
namespace Avalonia.Base.UnitTests.Data.Core
{
public class BindingExpressionTests : IClassFixture<InvariantCultureFixture>
{

4
tests/Avalonia.Markup.UnitTests/Data/ExpressionNodeBuilderTests.cs → tests/Avalonia.Base.UnitTests/Data/Core/ExpressionNodeBuilderTests.cs

@ -3,10 +3,10 @@
using System.Collections.Generic;
using System.Linq;
using Avalonia.Markup.Data;
using Avalonia.Data.Core;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
namespace Avalonia.Base.UnitTests.Data.Core
{
public class ExpressionNodeBuilderTests
{

4
tests/Avalonia.Markup.UnitTests/Data/ExpressionNodeBuilderTests_Errors.cs → tests/Avalonia.Base.UnitTests/Data/Core/ExpressionNodeBuilderTests_Errors.cs

@ -1,10 +1,10 @@
// Copyright (c) The Avalonia Project. All rights reserved.
// Licensed under the MIT license. See licence.md file in the project root for full license information.
using Avalonia.Markup.Data;
using Avalonia.Data.Core;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
namespace Avalonia.Base.UnitTests.Data.Core
{
public class ExpressionNodeBuilderTests_Errors
{

4
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_AttachedProperty.cs → tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_AttachedProperty.cs

@ -6,10 +6,10 @@ using System.Collections.Generic;
using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Diagnostics;
using Avalonia.Markup.Data;
using Avalonia.Data.Core;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
namespace Avalonia.Base.UnitTests.Data.Core
{
public class ExpressionObserverTests_AttachedProperty
{

4
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_AvaloniaProperty.cs → tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_AvaloniaProperty.cs

@ -6,10 +6,10 @@ using System.Collections.Generic;
using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Diagnostics;
using Avalonia.Markup.Data;
using Avalonia.Data.Core;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
namespace Avalonia.Base.UnitTests.Data.Core
{
public class ExpressionObserverTests_AvaloniaProperty
{

4
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_DataValidation.cs → tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_DataValidation.cs

@ -7,11 +7,11 @@ using System.Collections.Generic;
using System.Linq;
using System.Reactive.Linq;
using Avalonia.Data;
using Avalonia.Markup.Data;
using Avalonia.Data.Core;
using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
namespace Avalonia.Base.UnitTests.Data.Core
{
public class ExpressionObserverTests_DataValidation : IClassFixture<InvariantCultureFixture>
{

4
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Indexer.cs → tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_Indexer.cs

@ -8,11 +8,11 @@ using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Collections;
using Avalonia.Diagnostics;
using Avalonia.Markup.Data;
using Avalonia.Data.Core;
using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
namespace Avalonia.Base.UnitTests.Data.Core
{
public class ExpressionObserverTests_Indexer
{

4
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Lifetime.cs → tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_Lifetime.cs

@ -7,10 +7,10 @@ using System.Reactive;
using System.Reactive.Linq;
using System.Reactive.Subjects;
using Microsoft.Reactive.Testing;
using Avalonia.Markup.Data;
using Avalonia.Data.Core;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
namespace Avalonia.Base.UnitTests.Data.Core
{
public class ExpressionObserverTests_Lifetime
{

4
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Method.cs → tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_Method.cs

@ -1,5 +1,5 @@
using Avalonia.Data;
using Avalonia.Markup.Data;
using Avalonia.Data.Core;
using System;
using System.Collections.Generic;
using System.Linq;
@ -8,7 +8,7 @@ using System.Text;
using System.Threading.Tasks;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
namespace Avalonia.Base.UnitTests.Data.Core
{
public class ExpressionObserverTests_Method
{

4
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Negation.cs → tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_Negation.cs

@ -5,10 +5,10 @@ using System;
using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Data;
using Avalonia.Markup.Data;
using Avalonia.Data.Core;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
namespace Avalonia.Base.UnitTests.Data.Core
{
public class ExpressionObserverTests_Negation
{

4
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Observable.cs → tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_Observable.cs

@ -6,11 +6,11 @@ using System.Collections.Generic;
using System.Reactive.Linq;
using System.Reactive.Subjects;
using Avalonia.Data;
using Avalonia.Markup.Data;
using Avalonia.Data.Core;
using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
namespace Avalonia.Base.UnitTests.Data.Core
{
public class ExpressionObserverTests_Observable
{

6
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Property.cs → tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_Property.cs

@ -8,12 +8,12 @@ using System.Reactive.Linq;
using System.Reactive.Subjects;
using Microsoft.Reactive.Testing;
using Avalonia.Data;
using Avalonia.Markup.Data;
using Avalonia.Data.Core;
using Avalonia.UnitTests;
using Xunit;
using System.Threading.Tasks;
namespace Avalonia.Markup.UnitTests.Data
namespace Avalonia.Base.UnitTests.Data.Core
{
public class ExpressionObserverTests_Property
{
@ -363,7 +363,7 @@ namespace Avalonia.Markup.UnitTests.Data
{
"bar",
new BindingNotification(
new MissingMemberException("Could not find CLR property 'Bar' on 'Avalonia.Markup.UnitTests.Data.ExpressionObserverTests_Property+WithoutBar'"),
new MissingMemberException("Could not find CLR property 'Bar' on 'Avalonia.Base.UnitTests.Data.Core.ExpressionObserverTests_Property+WithoutBar'"),
BindingErrorType.Error),
"baz",
},

4
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_SetValue.cs → tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_SetValue.cs

@ -4,11 +4,11 @@
using System;
using System.Reactive.Linq;
using System.Reactive.Subjects;
using Avalonia.Markup.Data;
using Avalonia.Data.Core;
using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
namespace Avalonia.Base.UnitTests.Data.Core
{
public class ExpressionObserverTests_SetValue
{

4
tests/Avalonia.Markup.UnitTests/Data/ExpressionObserverTests_Task.cs → tests/Avalonia.Base.UnitTests/Data/Core/ExpressionObserverTests_Task.cs

@ -6,11 +6,11 @@ using System.Collections.Generic;
using System.Reactive.Linq;
using System.Threading.Tasks;
using Avalonia.Data;
using Avalonia.Markup.Data;
using Avalonia.Data.Core;
using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data
namespace Avalonia.Base.UnitTests.Data.Core
{
public class ExpressionObserverTests_Task
{

2
tests/Avalonia.Markup.UnitTests/Data/IndeiBase.cs → tests/Avalonia.Base.UnitTests/Data/Core/IndeiBase.cs

@ -7,7 +7,7 @@ using System.ComponentModel;
using System.Runtime.CompilerServices;
using Avalonia.UnitTests;
namespace Avalonia.Markup.UnitTests.Data
namespace Avalonia.Base.UnitTests.Data.Core
{
internal abstract class IndeiBase : NotifyingBase, INotifyDataErrorInfo
{

2
tests/Avalonia.Markup.UnitTests/Data/Plugins/DataAnnotationsValidationPluginTests.cs → tests/Avalonia.Base.UnitTests/Data/Core/Plugins/DataAnnotationsValidationPluginTests.cs

@ -5,7 +5,7 @@ using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using Avalonia.Data;
using Avalonia.Markup.Data.Plugins;
using Avalonia.Data.Core.Plugins;
using Avalonia.UnitTests;
using Xunit;

4
tests/Avalonia.Markup.UnitTests/Data/Plugins/ExceptionValidationPluginTests.cs → tests/Avalonia.Base.UnitTests/Data/Core/Plugins/ExceptionValidationPluginTests.cs

@ -5,11 +5,11 @@ using System;
using System.Collections.Generic;
using System.Reactive.Linq;
using Avalonia.Data;
using Avalonia.Markup.Data.Plugins;
using Avalonia.Data.Core.Plugins;
using Avalonia.UnitTests;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data.Plugins
namespace Avalonia.Base.UnitTests.Data.Core.Plugins
{
public class ExceptionValidationPluginTests
{

4
tests/Avalonia.Markup.UnitTests/Data/Plugins/IndeiValidationPluginTests.cs → tests/Avalonia.Base.UnitTests/Data/Core/Plugins/IndeiValidationPluginTests.cs

@ -6,10 +6,10 @@ using System.Collections;
using System.Collections.Generic;
using System.Reactive.Linq;
using Avalonia.Data;
using Avalonia.Markup.Data.Plugins;
using Avalonia.Data.Core.Plugins;
using Xunit;
namespace Avalonia.Markup.UnitTests.Data.Plugins
namespace Avalonia.Base.UnitTests.Data.Core.Plugins
{
public class IndeiValidationPluginTests
{

3
tests/Avalonia.Markup.UnitTests/DefaultValueConverterTests.cs → tests/Avalonia.Base.UnitTests/Data/DefaultValueConverterTests.cs

@ -7,8 +7,9 @@ using Avalonia.Data;
using Xunit;
using System.Windows.Input;
using System;
using Avalonia.Data.Converters;
namespace Avalonia.Markup.UnitTests
namespace Avalonia.Base.UnitTests.Data.Converters
{
public class DefaultValueConverterTests
{

2
tests/Avalonia.Markup.UnitTests/UnitTestSynchronizationContext.cs → tests/Avalonia.Base.UnitTests/Data/UnitTestSynchronizationContext.cs

@ -6,7 +6,7 @@ using System.Collections.Generic;
using System.Reactive.Disposables;
using System.Threading;
namespace Avalonia.Markup.UnitTests
namespace Avalonia.Base.UnitTests.Data
{
internal sealed class UnitTestSynchronizationContext : SynchronizationContext
{

2
tests/Avalonia.Controls.UnitTests/AutoCompleteBoxTests.cs

@ -10,7 +10,7 @@ using Avalonia.Controls.Primitives;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Templates;
using Avalonia.Data;
using Avalonia.Markup.Xaml.Data;
using Avalonia.Markup.Data;
using Avalonia.Platform;
using Avalonia.Threading;
using Avalonia.UnitTests;

2
tests/Avalonia.Controls.UnitTests/ButtonTests.cs

@ -1,6 +1,6 @@
using System;
using System.Windows.Input;
using Avalonia.Markup.Xaml.Data;
using Avalonia.Markup.Data;
using Xunit;
namespace Avalonia.Controls.UnitTests

2
tests/Avalonia.Controls.UnitTests/ContentControlTests.cs

@ -12,7 +12,7 @@ using Avalonia.Styling;
using Avalonia.UnitTests;
using Avalonia.VisualTree;
using Xunit;
using Avalonia.Markup.Xaml.Data;
using Avalonia.Markup.Data;
using Avalonia.Data;
using System.Collections.Generic;

2
tests/Avalonia.Controls.UnitTests/DatePickerTests.cs

@ -10,7 +10,7 @@ using Avalonia.Controls.Primitives;
using Avalonia.Controls.Presenters;
using Avalonia.Controls.Templates;
using Avalonia.Data;
using Avalonia.Markup.Xaml.Data;
using Avalonia.Markup.Data;
using Avalonia.Platform;
using Avalonia.UnitTests;
using Moq;

2
tests/Avalonia.Controls.UnitTests/ListBoxTests_Single.cs

@ -9,7 +9,7 @@ using Avalonia.Controls.Templates;
using Avalonia.Data;
using Avalonia.Input;
using Avalonia.LogicalTree;
using Avalonia.Markup.Xaml.Data;
using Avalonia.Markup.Data;
using Avalonia.Styling;
using Avalonia.VisualTree;
using Xunit;

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save