Skip to content

Commit 6836e28

Browse files
committed
Update dependencies: add support for "NSwag.Commands v13.6.1";
Update `ps1`-script for publishing vsix to vsixgallery.com; Fix bug: add some missed C# client and controller generation options.
1 parent 9122d38 commit 6836e28

13 files changed

+230
-76
lines changed

CHANGELOG.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,16 @@
77

88
These are the changes to each version that has been released on the official [Visual Studio extension gallery](https://marketplace.visualstudio.com/items?itemName=unchase.UnchaseOpenAPIConnectedService).
99

10+
## v1.5.1 `(2020-06-12)`
11+
12+
- [x] Update dependencies: add support for [NSwag.Commands v13.6.1](https://github.com/RicoSuter/NSwag/pull/2894)
13+
- [x] Add NewLineBehaviour
14+
- [x] Fix enum style UI
15+
- [x] Add default CancellationToken parameter to C# controller template
16+
- [x] Update NJS, add GenerateNullableReferenceTypes to CLI/UI
17+
- [x] Update `ps1`-script for publishing vsix to vsixgallery.com
18+
- [x] Fix bug: add some missed C# client and controller generation options
19+
1020
## v1.5.0 `(2020-06-05)`
1121

1222
- [x] Add experimental feature: ability to convert to OpenAPI specification from OData specification based on [OpenAPI.NET.OData](https://github.com/microsoft/OpenAPI.NET.OData) before code generation

src/Properties/AssemblyInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
// You can specify all the values or you can default the Build and Revision Numbers
3131
// by using the '*' as shown below:
3232
// [assembly: AssemblyVersion("1.2.*")]
33-
[assembly: AssemblyVersion("1.5.0")]
34-
[assembly: AssemblyFileVersion("1.5.0.0")]
33+
[assembly: AssemblyVersion("1.5.1")]
34+
[assembly: AssemblyFileVersion("1.5.1.0")]
3535
[assembly: NeutralResourcesLanguage("en-US")]
3636

src/Unchase.OpenAPI.ConnectedService.csproj

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -456,53 +456,53 @@
456456
<HintPath>packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
457457
<Private>True</Private>
458458
</Reference>
459-
<Reference Include="NJsonSchema, Version=10.1.18.0, Culture=neutral, PublicKeyToken=c2f9c3bdfae56102, processorArchitecture=MSIL">
460-
<HintPath>packages\NJsonSchema.10.1.18\lib\net45\NJsonSchema.dll</HintPath>
459+
<Reference Include="NJsonSchema, Version=10.1.21.0, Culture=neutral, PublicKeyToken=c2f9c3bdfae56102, processorArchitecture=MSIL">
460+
<HintPath>packages\NJsonSchema.10.1.21\lib\net45\NJsonSchema.dll</HintPath>
461461
</Reference>
462-
<Reference Include="NJsonSchema.CodeGeneration, Version=10.1.18.0, Culture=neutral, PublicKeyToken=c2f9c3bdfae56102, processorArchitecture=MSIL">
463-
<HintPath>packages\NJsonSchema.CodeGeneration.10.1.18\lib\net451\NJsonSchema.CodeGeneration.dll</HintPath>
462+
<Reference Include="NJsonSchema.CodeGeneration, Version=10.1.21.0, Culture=neutral, PublicKeyToken=c2f9c3bdfae56102, processorArchitecture=MSIL">
463+
<HintPath>packages\NJsonSchema.CodeGeneration.10.1.21\lib\net451\NJsonSchema.CodeGeneration.dll</HintPath>
464464
</Reference>
465-
<Reference Include="NJsonSchema.CodeGeneration.CSharp, Version=10.1.18.0, Culture=neutral, PublicKeyToken=c2f9c3bdfae56102, processorArchitecture=MSIL">
466-
<HintPath>packages\NJsonSchema.CodeGeneration.CSharp.10.1.18\lib\net451\NJsonSchema.CodeGeneration.CSharp.dll</HintPath>
465+
<Reference Include="NJsonSchema.CodeGeneration.CSharp, Version=10.1.21.0, Culture=neutral, PublicKeyToken=c2f9c3bdfae56102, processorArchitecture=MSIL">
466+
<HintPath>packages\NJsonSchema.CodeGeneration.CSharp.10.1.21\lib\net451\NJsonSchema.CodeGeneration.CSharp.dll</HintPath>
467467
</Reference>
468-
<Reference Include="NJsonSchema.CodeGeneration.TypeScript, Version=10.1.18.0, Culture=neutral, PublicKeyToken=c2f9c3bdfae56102, processorArchitecture=MSIL">
469-
<HintPath>packages\NJsonSchema.CodeGeneration.TypeScript.10.1.18\lib\net451\NJsonSchema.CodeGeneration.TypeScript.dll</HintPath>
468+
<Reference Include="NJsonSchema.CodeGeneration.TypeScript, Version=10.1.21.0, Culture=neutral, PublicKeyToken=c2f9c3bdfae56102, processorArchitecture=MSIL">
469+
<HintPath>packages\NJsonSchema.CodeGeneration.TypeScript.10.1.21\lib\net451\NJsonSchema.CodeGeneration.TypeScript.dll</HintPath>
470470
</Reference>
471-
<Reference Include="NJsonSchema.Yaml, Version=10.1.18.0, Culture=neutral, PublicKeyToken=c2f9c3bdfae56102, processorArchitecture=MSIL">
472-
<HintPath>packages\NJsonSchema.Yaml.10.1.18\lib\net45\NJsonSchema.Yaml.dll</HintPath>
471+
<Reference Include="NJsonSchema.Yaml, Version=10.1.21.0, Culture=neutral, PublicKeyToken=c2f9c3bdfae56102, processorArchitecture=MSIL">
472+
<HintPath>packages\NJsonSchema.Yaml.10.1.21\lib\net45\NJsonSchema.Yaml.dll</HintPath>
473473
</Reference>
474-
<Reference Include="NSwag.Annotations, Version=13.6.0.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
475-
<HintPath>packages\NSwag.Annotations.13.6.0\lib\net45\NSwag.Annotations.dll</HintPath>
474+
<Reference Include="NSwag.Annotations, Version=13.6.1.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
475+
<HintPath>packages\NSwag.Annotations.13.6.1\lib\net45\NSwag.Annotations.dll</HintPath>
476476
</Reference>
477-
<Reference Include="NSwag.AssemblyLoader, Version=13.6.0.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
478-
<HintPath>packages\NSwag.AssemblyLoader.13.6.0\lib\net451\NSwag.AssemblyLoader.dll</HintPath>
477+
<Reference Include="NSwag.AssemblyLoader, Version=13.6.1.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
478+
<HintPath>packages\NSwag.AssemblyLoader.13.6.1\lib\net451\NSwag.AssemblyLoader.dll</HintPath>
479479
</Reference>
480-
<Reference Include="NSwag.CodeGeneration, Version=13.6.0.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
481-
<HintPath>packages\NSwag.CodeGeneration.13.6.0\lib\net451\NSwag.CodeGeneration.dll</HintPath>
480+
<Reference Include="NSwag.CodeGeneration, Version=13.6.1.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
481+
<HintPath>packages\NSwag.CodeGeneration.13.6.1\lib\net451\NSwag.CodeGeneration.dll</HintPath>
482482
</Reference>
483-
<Reference Include="NSwag.CodeGeneration.CSharp, Version=13.6.0.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
484-
<HintPath>packages\NSwag.CodeGeneration.CSharp.13.6.0\lib\net451\NSwag.CodeGeneration.CSharp.dll</HintPath>
483+
<Reference Include="NSwag.CodeGeneration.CSharp, Version=13.6.1.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
484+
<HintPath>packages\NSwag.CodeGeneration.CSharp.13.6.1\lib\net451\NSwag.CodeGeneration.CSharp.dll</HintPath>
485485
</Reference>
486-
<Reference Include="NSwag.CodeGeneration.TypeScript, Version=13.6.0.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
487-
<HintPath>packages\NSwag.CodeGeneration.TypeScript.13.6.0\lib\net451\NSwag.CodeGeneration.TypeScript.dll</HintPath>
486+
<Reference Include="NSwag.CodeGeneration.TypeScript, Version=13.6.1.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
487+
<HintPath>packages\NSwag.CodeGeneration.TypeScript.13.6.1\lib\net451\NSwag.CodeGeneration.TypeScript.dll</HintPath>
488488
</Reference>
489-
<Reference Include="NSwag.Commands, Version=13.6.0.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
490-
<HintPath>packages\NSwag.Commands.13.6.0\lib\net461\NSwag.Commands.dll</HintPath>
489+
<Reference Include="NSwag.Commands, Version=13.6.1.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
490+
<HintPath>packages\NSwag.Commands.13.6.1\lib\net461\NSwag.Commands.dll</HintPath>
491491
</Reference>
492-
<Reference Include="NSwag.Core, Version=13.6.0.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
493-
<HintPath>packages\NSwag.Core.13.6.0\lib\net45\NSwag.Core.dll</HintPath>
492+
<Reference Include="NSwag.Core, Version=13.6.1.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
493+
<HintPath>packages\NSwag.Core.13.6.1\lib\net45\NSwag.Core.dll</HintPath>
494494
</Reference>
495-
<Reference Include="NSwag.Core.Yaml, Version=13.6.0.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
496-
<HintPath>packages\NSwag.Core.Yaml.13.6.0\lib\net45\NSwag.Core.Yaml.dll</HintPath>
495+
<Reference Include="NSwag.Core.Yaml, Version=13.6.1.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
496+
<HintPath>packages\NSwag.Core.Yaml.13.6.1\lib\net45\NSwag.Core.Yaml.dll</HintPath>
497497
</Reference>
498-
<Reference Include="NSwag.Generation, Version=13.6.0.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
499-
<HintPath>packages\NSwag.Generation.13.6.0\lib\net45\NSwag.Generation.dll</HintPath>
498+
<Reference Include="NSwag.Generation, Version=13.6.1.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
499+
<HintPath>packages\NSwag.Generation.13.6.1\lib\net45\NSwag.Generation.dll</HintPath>
500500
</Reference>
501-
<Reference Include="NSwag.Generation.AspNetCore, Version=13.6.0.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
502-
<HintPath>packages\NSwag.Generation.AspNetCore.13.6.0\lib\net451\NSwag.Generation.AspNetCore.dll</HintPath>
501+
<Reference Include="NSwag.Generation.AspNetCore, Version=13.6.1.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
502+
<HintPath>packages\NSwag.Generation.AspNetCore.13.6.1\lib\net451\NSwag.Generation.AspNetCore.dll</HintPath>
503503
</Reference>
504-
<Reference Include="NSwag.Generation.WebApi, Version=13.6.0.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
505-
<HintPath>packages\NSwag.Generation.WebApi.13.6.0\lib\net45\NSwag.Generation.WebApi.dll</HintPath>
504+
<Reference Include="NSwag.Generation.WebApi, Version=13.6.1.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
505+
<HintPath>packages\NSwag.Generation.WebApi.13.6.1\lib\net45\NSwag.Generation.WebApi.dll</HintPath>
506506
</Reference>
507507
<Reference Include="NSwag.SwaggerGeneration, Version=12.3.1.0, Culture=neutral, PublicKeyToken=c2d88086e098d109, processorArchitecture=MSIL">
508508
<HintPath>packages\NSwag.SwaggerGeneration.12.3.1\lib\net45\NSwag.SwaggerGeneration.dll</HintPath>

src/ViewModels/CSharpClientSettingsViewModel.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
using System.Linq;
33
using Microsoft.VisualStudio.ConnectedServices;
44
using NJsonSchema.CodeGeneration.CSharp;
5+
using NSwag.Commands;
56
using NSwag.Commands.CodeGeneration;
67
using Unchase.OpenAPI.ConnectedService.Views;
78

@@ -28,6 +29,11 @@ internal class CSharpClientSettingsViewModel : ConnectedServiceWizardPage
2829
.Select(t => (CSharpClassStyle)Enum.Parse(typeof(CSharpClassStyle), t))
2930
.ToArray();
3031

32+
/// <summary>Gets new line behaviors. </summary>
33+
public NewLineBehavior[] NewLineBehaviors { get; } = Enum.GetNames(typeof(NewLineBehavior))
34+
.Select(t => (NewLineBehavior)Enum.Parse(typeof(NewLineBehavior), t))
35+
.ToArray();
36+
3137
public bool ExcludeTypeNamesLater { get; set; }
3238
#endregion
3339

src/ViewModels/CSharpControllerSettingsViewModel.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using Microsoft.VisualStudio.ConnectedServices;
44
using NJsonSchema.CodeGeneration.CSharp;
55
using NSwag.CodeGeneration.CSharp.Models;
6+
using NSwag.Commands;
67
using NSwag.Commands.CodeGeneration;
78
using Unchase.OpenAPI.ConnectedService.Views;
89

@@ -37,6 +38,12 @@ internal class CSharpControllerSettingsViewModel : ConnectedServiceWizardPage
3738
public CSharpControllerRouteNamingStrategy[] RouteNamingStrategies { get; } = Enum.GetNames(typeof(CSharpControllerRouteNamingStrategy))
3839
.Select(t => (CSharpControllerRouteNamingStrategy)Enum.Parse(typeof(CSharpControllerRouteNamingStrategy), t))
3940
.ToArray();
41+
42+
/// <summary>Gets new line behaviors. </summary>
43+
public NewLineBehavior[] NewLineBehaviors { get; } = Enum.GetNames(typeof(NewLineBehavior))
44+
.Select(t => (NewLineBehavior)Enum.Parse(typeof(NewLineBehavior), t))
45+
.ToArray();
46+
4047
#endregion
4148

4249
#region Constructors

src/ViewModels/TypeScriptClientSettingsViewModel.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using Microsoft.VisualStudio.ConnectedServices;
44
using NJsonSchema.CodeGeneration.TypeScript;
55
using NSwag.CodeGeneration.TypeScript;
6+
using NSwag.Commands;
67
using NSwag.Commands.CodeGeneration;
78
using Unchase.OpenAPI.ConnectedService.Views;
89

@@ -63,6 +64,12 @@ internal class TypeScriptClientSettingsViewModel : ConnectedServiceWizardPage
6364
public TypeScriptNullValue[] NullValues { get; } = Enum.GetNames(typeof(TypeScriptNullValue))
6465
.Select(t => (TypeScriptNullValue)Enum.Parse(typeof(TypeScriptNullValue), t))
6566
.ToArray();
67+
68+
/// <summary>Gets new line behaviors. </summary>
69+
public NewLineBehavior[] NewLineBehaviors { get; } = Enum.GetNames(typeof(NewLineBehavior))
70+
.Select(t => (NewLineBehavior)Enum.Parse(typeof(NewLineBehavior), t))
71+
.ToArray();
72+
6673
#endregion
6774

6875
#region Constructors

src/Views/CSharpClientSettings.xaml

Lines changed: 55 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -565,22 +565,38 @@
565565
</CheckBox>
566566
<StackPanel Margin="20,0,0,0" Visibility="{Binding Command.GenerateDtoTypes, Converter={StaticResource VisibilityConverter}}">
567567
<CheckBox
568+
Margin="0,5,10,5"
569+
IsChecked="{Binding Command.GenerateOptionalPropertiesAsNullable, Mode=TwoWay}"
570+
ToolTip="GenerateOptionalPropertiesAsNullable">
571+
<TextBlock Text="Generate optional schema properties (not required) as nullable properties." TextWrapping="Wrap" />
572+
</CheckBox>
573+
<CheckBox
574+
Margin="0,5,10,5"
575+
IsChecked="{Binding Command.GenerateNullableReferenceTypes, Mode=TwoWay}"
576+
ToolTip="GenerateNullableReferenceTypes">
577+
<TextBlock Text="Generate Nullable Reference Type (NRT) annotations (C# 8)." TextWrapping="Wrap" />
578+
</CheckBox>
579+
580+
<CheckBox
581+
x:Name="ExcludeTypeNamesLater"
568582
Margin="0,5,10,5"
569583
IsChecked="{Binding ExcludeTypeNamesLater, Mode=TwoWay}"
570584
ToolTip="ExcludeTypeNamesLater">
571585
<TextBlock Text="Exclude type names later (in a separated window)." TextWrapping="Wrap" />
572586
</CheckBox>
573-
<TextBlock
574-
Margin="0,5,0,0"
575-
FontWeight="Bold"
576-
Text="Excluded Type Names (comma separated, must be defined in another namespace) :"
577-
TextWrapping="WrapWithOverflow" />
578-
<TextBox
579-
Margin="0,5,10,5"
580-
HorizontalAlignment="Stretch"
581-
VerticalAlignment="Center"
582-
Text="{Binding Command.ExcludedTypeNames, Mode=TwoWay, Converter={StaticResource StringArrayConverter}, ConverterParameter=','}"
583-
ToolTip="ExcludedTypeNames" />
587+
<StackPanel Visibility="{Binding ElementName=ExcludeTypeNamesLater, Path=IsChecked, Converter={StaticResource NotConverter}}">
588+
<TextBlock
589+
Margin="0,5,0,0"
590+
FontWeight="Bold"
591+
Text="Excluded Type Names (comma separated, must be defined in another namespace) :"
592+
TextWrapping="WrapWithOverflow" />
593+
<TextBox
594+
Margin="0,5,10,5"
595+
HorizontalAlignment="Stretch"
596+
VerticalAlignment="Center"
597+
Text="{Binding Command.ExcludedTypeNames, Mode=TwoWay, Converter={StaticResource StringArrayConverter}, ConverterParameter=','}"
598+
ToolTip="ExcludedTypeNames" />
599+
</StackPanel>
584600

585601
<TextBlock
586602
Margin="0,5,0,0"
@@ -914,5 +930,33 @@
914930
Text="{Binding Command.TemplateDirectory, Mode=TwoWay}"
915931
ToolTip="TemplateDirectory" />
916932
</StackPanel>
933+
934+
<TextBlock Margin="0,10,0,0" TextWrapping="Wrap">
935+
<Bold>Output</Bold>
936+
(<Hyperlink
937+
Name="OutputHyperlink"
938+
Command="{StaticResource StackPanelChangeVisibilityCommand}"
939+
CommandParameter="{Binding ElementName=OutputPanel}">
940+
<TextBlock
941+
Name="OutputHyperlinkText"
942+
Text="{Binding ElementName=OutputPanel, Path=Visibility, Converter={StaticResource VisibilityToHyperlinkTextConverter}}"
943+
TextWrapping="WrapWithOverflow" />
944+
</Hyperlink>
945+
)</TextBlock>
946+
<StackPanel
947+
x:Name="OutputPanel"
948+
Margin="20,0,0,0"
949+
Visibility="Collapsed">
950+
<TextBlock
951+
Margin="0,5,10,5"
952+
FontWeight="Bold"
953+
Text="New Line Behavior :"
954+
TextWrapping="WrapWithOverflow" />
955+
<ComboBox
956+
Margin="0,5,10,5"
957+
ItemsSource="{Binding NewLineBehaviors}"
958+
SelectedItem="{Binding Command.NewLineBehavior, Mode=TwoWay}"
959+
ToolTip="NewLineBehavior" />
960+
</StackPanel>
917961
</StackPanel>
918962
</UserControl>

src/Views/CSharpControllerSettings.xaml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,19 @@
326326
ToolTip="GenerateDtoTypes" />
327327
</CheckBox>
328328
<StackPanel Margin="20,0,0,0" Visibility="{Binding Command.GenerateDtoTypes, Converter={StaticResource VisibilityConverter}}">
329+
<CheckBox
330+
Margin="0,5,10,5"
331+
IsChecked="{Binding Command.GenerateOptionalPropertiesAsNullable, Mode=TwoWay}"
332+
ToolTip="GenerateOptionalPropertiesAsNullable">
333+
<TextBlock Text="Generate optional schema properties (not required) as nullable properties." TextWrapping="Wrap" />
334+
</CheckBox>
335+
<CheckBox
336+
Margin="0,5,10,5"
337+
IsChecked="{Binding Command.GenerateNullableReferenceTypes, Mode=TwoWay}"
338+
ToolTip="GenerateNullableReferenceTypes">
339+
<TextBlock Text="Generate Nullable Reference Type (NRT) annotations (C# 8)." TextWrapping="Wrap" />
340+
</CheckBox>
341+
329342
<TextBlock
330343
Margin="0,5,0,0"
331344
FontWeight="Bold"
@@ -630,6 +643,34 @@
630643
Text="{Binding Command.TemplateDirectory, Mode=TwoWay}"
631644
ToolTip="TemplateDirectory" />
632645
</StackPanel>
646+
647+
<TextBlock Margin="0,10,0,0" TextWrapping="Wrap">
648+
<Bold>Output</Bold>
649+
(<Hyperlink
650+
Name="OutputHyperlink"
651+
Command="{StaticResource StackPanelChangeVisibilityCommand}"
652+
CommandParameter="{Binding ElementName=OutputPanel}">
653+
<TextBlock
654+
Name="OutputHyperlinkText"
655+
Text="{Binding ElementName=OutputPanel, Path=Visibility, Converter={StaticResource VisibilityToHyperlinkTextConverter}}"
656+
TextWrapping="WrapWithOverflow" />
657+
</Hyperlink>
658+
)</TextBlock>
659+
<StackPanel
660+
x:Name="OutputPanel"
661+
Margin="20,0,0,0"
662+
Visibility="Collapsed">
663+
<TextBlock
664+
Margin="0,5,10,5"
665+
FontWeight="Bold"
666+
Text="New Line Behavior :"
667+
TextWrapping="WrapWithOverflow" />
668+
<ComboBox
669+
Margin="0,5,10,5"
670+
ItemsSource="{Binding NewLineBehaviors}"
671+
SelectedItem="{Binding Command.NewLineBehavior, Mode=TwoWay}"
672+
ToolTip="NewLineBehavior" />
673+
</StackPanel>
633674
</StackPanel>
634675

635676
</UserControl>

0 commit comments

Comments
 (0)