Compare commits

..

No commits in common. "08adb3522c3c2fe397d621dc282e64719df3b06a" and "ff3ec4d9e6b335a4890948cf692b3476c9738b2b" have entirely different histories.

9 changed files with 22 additions and 17 deletions

View File

@ -15,6 +15,8 @@ jobs:
- uses: actions/checkout@v2
- name: Setup .NET Core
uses: actions/setup-dotnet@v1
with:
dotnet-version: 3.1.101
- name: Install dependencies
run: dotnet restore
- name: Build

View File

@ -7,9 +7,9 @@ namespace ModernWpfPlayground
public static readonly DependencyProperty MessageProperty = DependencyProperty.Register(
"Message", typeof(string), typeof(ContentDialogExample), new PropertyMetadata(default(string)));
public string? Message
public string Message
{
get => (string?) GetValue(MessageProperty);
get => (string) GetValue(MessageProperty);
set => SetValue(MessageProperty, value);
}

View File

@ -75,7 +75,7 @@ namespace ModernWpfPlayground
public ICommand ShowDialogCommand { get; }
public string? WelcomeMessage
public string WelcomeMessage
{
get => GetProperty("Shadow of the empire");
set => SetProperty(value);
@ -137,7 +137,7 @@ namespace ModernWpfPlayground
private void SaveViewModel()
{
var contents = _serializer.Serialize(Values);
if (Path is null)
if (Path == null)
{
var saveFileDialog = new SaveFileDialog {AddExtension = true, DefaultExt = "*.yaml"};
var result = saveFileDialog.ShowDialog(Application.Current.MainWindow?.Owner);

View File

@ -15,6 +15,8 @@
<PackageReference Include="YamlDotNet" Version="9.1.0" />
<PackageReference Include="System.Drawing.Common" Version="5.0.0" />
<PackageReference Include="MahApps.Metro.IconPacks.FontAwesome" Version="4.8.0" />
<PackageReference Include="Microsoft.Windows.CsWinRT" Version="1.1.0" />
<PackageReference Include="Microsoft.Windows.SDK.Contracts" Version="10.0.18362.2005" />
</ItemGroup>
<ItemGroup>

View File

@ -14,9 +14,9 @@ namespace ModernWpfPlayground.MvvmStuff
ObjectAccessor = ObjectAccessor.Create(this);
}
private readonly Dictionary<string, object?> _values = new();
private readonly Dictionary<string, object?> _values = new Dictionary<string, object?>();
protected readonly ObjectAccessor ObjectAccessor;
private readonly Dictionary<string, object?> _defaultValues = new();
private readonly Dictionary<string, object?> _defaultValues = new Dictionary<string, object?>();
protected IReadOnlyDictionary<string, object?> Values => _values;
@ -32,7 +32,7 @@ namespace ModernWpfPlayground.MvvmStuff
return true;
}
protected T? GetProperty<T>(T? defaultValue = default, [CallerMemberName] string? propertyName = null)
protected T GetProperty<T>(T defaultValue = default, [CallerMemberName] string? propertyName = null)
{
if (propertyName == null) throw new ArgumentNullException(nameof(propertyName));
if (Values.TryGetValue(propertyName, out var obj))

View File

@ -1,13 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net5.0-windows</TargetFramework>
<TargetFramework>net5.0-windows10.0.18362.0</TargetFramework>
<UseWPF>true</UseWPF>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Windows.CsWinRT" Version="1.1.0" />
<PackageReference Include="ModernWpfUI" Version="0.9.3-preview.201204.0" />
<PackageReference Include="System.Drawing.Common" Version="5.0.0" />
<PackageReference Include="Microsoft.Windows.SDK.Contracts" Version="10.0.18362.2005" />
</ItemGroup>
</Project>

View File

@ -26,12 +26,10 @@ namespace Controls
/// <returns></returns>
private static string GetDescription(object value)
{
if (value is not Enum enumValue) return string.Empty;
if (!(value is Enum enumValue)) return string.Empty;
var descriptionAttribute = enumValue.GetType()
.GetField(enumValue.ToString())?
.GetCustomAttributes(false)
.OfType<DescriptionAttribute>()
.FirstOrDefault();
.GetField(enumValue.ToString())?.GetCustomAttributes(false)
.OfType<DescriptionAttribute>().FirstOrDefault();
return descriptionAttribute?.Description ?? value.ToString() ?? string.Empty;
}

View File

@ -36,11 +36,11 @@ namespace Controls
var data = value as string;
if (string.IsNullOrWhiteSpace(data)) return value; //maybe not a string. eventually something else.
if (data.StartsWith(NoParseKeyword, StringComparison.Ordinal)) return data[NoParseKeyword.Length..];
if (data.StartsWith(NoParseKeyword, StringComparison.Ordinal)) return data.Substring(NoParseKeyword.Length);
if (data.StartsWith(PathKeyword, StringComparison.Ordinal))
{
var path = data[PathKeyword.Length..];
var path = data.Substring(PathKeyword.Length);
var icon = ObjectImageConverter.GetIcon(Geometry.Parse(path), Brushes.Black);
return new Image
{
@ -53,7 +53,7 @@ namespace Controls
if (data.StartsWith(DynResKeyword, StringComparison.Ordinal))
{
var resourceKey = data[DynResKeyword.Length..];
var resourceKey = data.Substring(DynResKeyword.Length);
//get icon from resource dictionary
return new Image
{

View File

@ -26,7 +26,7 @@ namespace Controls
return System.Windows.Interop.Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromWidthAndHeight(16, 16));
}
if (value is not string strValue) return Binding.DoNothing;
if (!(value is string strValue)) return Binding.DoNothing;
if (strValue.StartsWith(dynResPrefix, StringComparison.Ordinal))
{
var resource = Application.Current.TryFindResource(strValue.Replace(dynResPrefix, string.Empty , StringComparison.InvariantCulture));