diff --git a/src/Avalonia.Controls/ColumnDefinitions.cs b/src/Avalonia.Controls/ColumnDefinitions.cs
index ed4f9dbe99..7e355ab357 100644
--- a/src/Avalonia.Controls/ColumnDefinitions.cs
+++ b/src/Avalonia.Controls/ColumnDefinitions.cs
@@ -1,6 +1,7 @@
using System;
using System.Collections.Specialized;
using System.Linq;
+using System.Text;
using Avalonia.Collections;
namespace Avalonia.Controls
@@ -13,7 +14,7 @@ namespace Avalonia.Controls
///
/// Initializes a new instance of the class.
///
- public ColumnDefinitions() : base ()
+ public ColumnDefinitions()
{
}
@@ -27,6 +28,11 @@ namespace Avalonia.Controls
AddRange(GridLength.ParseLengths(s).Select(x => new ColumnDefinition(x)));
}
+ public override string ToString()
+ {
+ return string.Join(",", this.Select(x => x.Width));
+ }
+
///
/// Parses a string representation of column definitions collection.
///
@@ -34,4 +40,4 @@ namespace Avalonia.Controls
/// The .
public static ColumnDefinitions Parse(string s) => new ColumnDefinitions(s);
}
-}
\ No newline at end of file
+}
diff --git a/src/Avalonia.Diagnostics/Diagnostics/ViewModels/PropertyViewModel.cs b/src/Avalonia.Diagnostics/Diagnostics/ViewModels/PropertyViewModel.cs
index ddbdae7ed9..e23d6f1471 100644
--- a/src/Avalonia.Diagnostics/Diagnostics/ViewModels/PropertyViewModel.cs
+++ b/src/Avalonia.Diagnostics/Diagnostics/ViewModels/PropertyViewModel.cs
@@ -8,8 +8,8 @@ namespace Avalonia.Diagnostics.ViewModels
internal abstract class PropertyViewModel : ViewModelBase
{
private const BindingFlags PublicStatic = BindingFlags.Public | BindingFlags.Static;
- private static readonly Type[] StringParameter = new[] { typeof(string) };
- private static readonly Type[] StringIFormatProviderParameters = new[] { typeof(string), typeof(IFormatProvider) };
+ private static readonly Type[] StringParameter = { typeof(string) };
+ private static readonly Type[] StringIFormatProviderParameters = { typeof(string), typeof(IFormatProvider) };
public abstract object Key { get; }
public abstract string Name { get; }
@@ -26,35 +26,46 @@ namespace Avalonia.Diagnostics.ViewModels
}
var converter = TypeDescriptor.GetConverter(value);
- return converter?.ConvertToString(value) ?? value.ToString();
+
+ //CollectionConverter does not deliver any important information. It just displays "(Collection)".
+ if (!converter.CanConvertTo(typeof(string)) ||
+ converter.GetType() == typeof(CollectionConverter))
+ {
+ return value.ToString();
+ }
+
+ return converter.ConvertToString(value);
}
- protected static object ConvertFromString(string s, Type targetType)
+ private static object InvokeParse(string s, Type targetType)
{
- var converter = TypeDescriptor.GetConverter(targetType);
-
- if (converter != null && converter.CanConvertFrom(typeof(string)))
+ var method = targetType.GetMethod("Parse", PublicStatic, null, StringIFormatProviderParameters, null);
+
+ if (method != null)
{
- return converter.ConvertFrom(null, CultureInfo.InvariantCulture, s);
+ return method.Invoke(null, new object[] { s, CultureInfo.InvariantCulture });
}
- else
+
+ method = targetType.GetMethod("Parse", PublicStatic, null, StringParameter, null);
+
+ if (method != null)
{
- var method = targetType.GetMethod("Parse", PublicStatic, null, StringIFormatProviderParameters, null);
+ return method.Invoke(null, new object[] { s });
+ }
- if (method != null)
- {
- return method.Invoke(null, new object[] { s, CultureInfo.InvariantCulture });
- }
+ throw new InvalidCastException("Unable to convert value.");
+ }
- method = targetType.GetMethod("Parse", PublicStatic, null, StringParameter, null);
+ protected static object ConvertFromString(string s, Type targetType)
+ {
+ var converter = TypeDescriptor.GetConverter(targetType);
- if (method != null)
- {
- return method.Invoke(null, new object[] { s });
- }
+ if (converter.CanConvertFrom(typeof(string)))
+ {
+ return converter.ConvertFrom(null, CultureInfo.InvariantCulture, s);
}
- throw new InvalidCastException("Unable to convert value.");
+ return InvokeParse(s, targetType);
}
}
}
diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs
index ddc0cc4e42..4929283874 100644
--- a/src/Windows/Avalonia.Win32/WindowImpl.cs
+++ b/src/Windows/Avalonia.Win32/WindowImpl.cs
@@ -1007,10 +1007,12 @@ namespace Avalonia.Win32
if (newProperties.IsResizable)
{
style |= WindowStyles.WS_SIZEFRAME;
+ style |= WindowStyles.WS_MAXIMIZEBOX;
}
else
{
style &= ~WindowStyles.WS_SIZEFRAME;
+ style &= ~WindowStyles.WS_MAXIMIZEBOX;
}
SetStyle(style);