diff --git a/XamlNameReferenceGenerator.Sandbox/Controls/CustomTextBox.cs b/XamlNameReferenceGenerator.Sandbox/Controls/CustomTextBox.cs new file mode 100644 index 0000000000..112cbefc5f --- /dev/null +++ b/XamlNameReferenceGenerator.Sandbox/Controls/CustomTextBox.cs @@ -0,0 +1,6 @@ +using Avalonia.Controls; + +namespace XamlNameReferenceGenerator.Sandbox.Controls +{ + public class CustomTextBox : TextBox { } +} \ No newline at end of file diff --git a/XamlNameReferenceGenerator.Sandbox/SignUpView.xaml b/XamlNameReferenceGenerator.Sandbox/SignUpView.xaml index 45e1a23daf..5e58f95202 100644 --- a/XamlNameReferenceGenerator.Sandbox/SignUpView.xaml +++ b/XamlNameReferenceGenerator.Sandbox/SignUpView.xaml @@ -1,11 +1,13 @@  - + diff --git a/XamlNameReferenceGenerator.Sandbox/SignUpView.xaml.cs b/XamlNameReferenceGenerator.Sandbox/SignUpView.xaml.cs index 717cc13cc8..feae6fbd38 100644 --- a/XamlNameReferenceGenerator.Sandbox/SignUpView.xaml.cs +++ b/XamlNameReferenceGenerator.Sandbox/SignUpView.xaml.cs @@ -11,13 +11,13 @@ namespace XamlNameReferenceGenerator.Sandbox /// references are living in a separate partial class file. See also: /// https://devblogs.microsoft.com/dotnet/new-c-source-generator-samples/ /// - [GenerateTypedNameReferences] + [GenerateTypedNameReferences(AdditionalNamespaces = new[] {"XamlNameReferenceGenerator.Sandbox.Controls"})] public partial class SignUpView : Window { public SignUpView() { AvaloniaXamlLoader.Load(this); - UserNameTextBox.Text = "Joseph"; + UserNameTextBox.Text = "Joseph!"; UserNameValidation.Text = "User name is valid."; PasswordTextBox.Text = "qwerty"; PasswordValidation.Text = "Password is valid."; diff --git a/XamlNameReferenceGenerator.Sandbox/XamlNameReferenceGenerator.Sandbox.csproj b/XamlNameReferenceGenerator.Sandbox/XamlNameReferenceGenerator.Sandbox.csproj index 05a9929f1c..4b93917903 100644 --- a/XamlNameReferenceGenerator.Sandbox/XamlNameReferenceGenerator.Sandbox.csproj +++ b/XamlNameReferenceGenerator.Sandbox/XamlNameReferenceGenerator.Sandbox.csproj @@ -20,8 +20,6 @@ - + diff --git a/XamlNameReferenceGenerator/NameReferenceGenerator.cs b/XamlNameReferenceGenerator/NameReferenceGenerator.cs index b2b2a1d979..69d5dd3677 100644 --- a/XamlNameReferenceGenerator/NameReferenceGenerator.cs +++ b/XamlNameReferenceGenerator/NameReferenceGenerator.cs @@ -23,10 +23,6 @@ namespace XamlNameReferenceGenerator { public GenerateTypedNameReferencesAttribute() { } - public GenerateTypedNameReferencesAttribute( - params string[] additionalNamespaces) => - AdditionalNamespaces = additionalNamespaces; - public string[] AdditionalNamespaces { get; set; } = null; } } diff --git a/XamlNameReferenceGenerator/NameReferenceXamlParser.cs b/XamlNameReferenceGenerator/NameReferenceXamlParser.cs index cb951dbb00..10f5740fbe 100644 --- a/XamlNameReferenceGenerator/NameReferenceXamlParser.cs +++ b/XamlNameReferenceGenerator/NameReferenceXamlParser.cs @@ -17,6 +17,9 @@ namespace XamlNameReferenceGenerator IterateThroughAllNodes(document, node => { var type = node.Name; + if (type.Contains(":")) + type = type.Split(':')[1]; + var name = node.Attributes?["x:Name"]?.Value ?? node.Attributes?["Name"]?.Value; if (!string.IsNullOrWhiteSpace(name))