diff --git a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet6_0.verified.txt b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet6_0.verified.txt index 63c4473be6..20c8fcc6b5 100644 --- a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet6_0.verified.txt +++ b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet6_0.verified.txt @@ -715,12 +715,18 @@ namespace ReactiveUI public class ReactiveObject : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged, ReactiveUI.IReactiveObject, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging { public ReactiveObject() { } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changed { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changing { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable ThrownExceptions { get; } @@ -744,12 +750,18 @@ namespace ReactiveUI public class ReactiveRecord : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged, ReactiveUI.IReactiveObject, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging, System.IEquatable { public ReactiveRecord() { } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changed { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changing { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable ThrownExceptions { get; } @@ -1046,4 +1058,4 @@ namespace ReactiveUI public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } } -} \ No newline at end of file +} diff --git a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet7_0.verified.txt b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet7_0.verified.txt index 89ea095473..a98f475136 100644 --- a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet7_0.verified.txt +++ b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet7_0.verified.txt @@ -715,12 +715,18 @@ namespace ReactiveUI public class ReactiveObject : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged, ReactiveUI.IReactiveObject, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging { public ReactiveObject() { } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changed { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changing { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable ThrownExceptions { get; } @@ -744,12 +750,18 @@ namespace ReactiveUI public class ReactiveRecord : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged, ReactiveUI.IReactiveObject, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging, System.IEquatable { public ReactiveRecord() { } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changed { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changing { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable ThrownExceptions { get; } @@ -1046,4 +1058,4 @@ namespace ReactiveUI public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } } -} \ No newline at end of file +} diff --git a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet8_0.verified.txt b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet8_0.verified.txt index 3f36840f15..8876b6aba5 100644 --- a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet8_0.verified.txt +++ b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.DotNet8_0.verified.txt @@ -715,12 +715,18 @@ namespace ReactiveUI public class ReactiveObject : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged, ReactiveUI.IReactiveObject, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging { public ReactiveObject() { } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changed { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changing { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable ThrownExceptions { get; } @@ -744,12 +750,18 @@ namespace ReactiveUI public class ReactiveRecord : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged, ReactiveUI.IReactiveObject, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging, System.IEquatable { public ReactiveRecord() { } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changed { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changing { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable ThrownExceptions { get; } @@ -1039,4 +1051,4 @@ namespace ReactiveUI public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } } -} \ No newline at end of file +} diff --git a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.Net4_7.verified.txt b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.Net4_7.verified.txt index a08268e9a0..8fd3087bf0 100644 --- a/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.Net4_7.verified.txt +++ b/src/ReactiveUI.Tests/API/ApiApprovalTests.ReactiveUI.Net4_7.verified.txt @@ -720,12 +720,18 @@ namespace ReactiveUI public class ReactiveObject : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged, ReactiveUI.IReactiveObject, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging { public ReactiveObject() { } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changed { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changing { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable ThrownExceptions { get; } @@ -749,12 +755,18 @@ namespace ReactiveUI public class ReactiveRecord : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged, ReactiveUI.IReactiveObject, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging, System.IEquatable { public ReactiveRecord() { } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changed { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable> Changing { get; } + [System.ComponentModel.Browsable(false)] + [System.ComponentModel.DataAnnotations.Display(AutoGenerateField=false, AutoGenerateFilter=false, Order=-1)] [System.Runtime.Serialization.IgnoreDataMember] [System.Text.Json.Serialization.JsonIgnore] public System.IObservable ThrownExceptions { get; } @@ -1051,4 +1063,4 @@ namespace ReactiveUI public static System.IObservable WhenAnyObservable(this TSender? sender, System.Linq.Expressions.Expression?>> obs1, System.Linq.Expressions.Expression?>> obs2, System.Linq.Expressions.Expression?>> obs3, System.Linq.Expressions.Expression?>> obs4, System.Linq.Expressions.Expression?>> obs5, System.Linq.Expressions.Expression?>> obs6, System.Linq.Expressions.Expression?>> obs7, System.Linq.Expressions.Expression?>> obs8, System.Linq.Expressions.Expression?>> obs9, System.Linq.Expressions.Expression?>> obs10, System.Linq.Expressions.Expression?>> obs11, System.Linq.Expressions.Expression?>> obs12, System.Func selector) where TSender : class { } } -} \ No newline at end of file +} diff --git a/src/ReactiveUI/GlobalUsings.cs b/src/ReactiveUI/GlobalUsings.cs index 83efbfa174..2d2d031e21 100644 --- a/src/ReactiveUI/GlobalUsings.cs +++ b/src/ReactiveUI/GlobalUsings.cs @@ -8,6 +8,9 @@ global using global::System.Collections.Generic; global using global::System.Collections.ObjectModel; global using global::System.ComponentModel; +#if !MONO +global using global::System.ComponentModel.DataAnnotations; +#endif global using global::System.Diagnostics.CodeAnalysis; global using global::System.Linq; global using global::System.Linq.Expressions; diff --git a/src/ReactiveUI/ReactiveObject/ReactiveObject.cs b/src/ReactiveUI/ReactiveObject/ReactiveObject.cs index 9a833934fb..4b5b9c3f54 100644 --- a/src/ReactiveUI/ReactiveObject/ReactiveObject.cs +++ b/src/ReactiveUI/ReactiveObject/ReactiveObject.cs @@ -72,16 +72,28 @@ public ReactiveObject() /// [IgnoreDataMember] [JsonIgnore] +#if !MONO + [Browsable(false)] + [Display(Order = -1, AutoGenerateField = false, AutoGenerateFilter = false)] +#endif public IObservable> Changing => _changing.Value; /// [IgnoreDataMember] [JsonIgnore] +#if !MONO + [Browsable(false)] + [Display(Order = -1, AutoGenerateField = false, AutoGenerateFilter = false)] +#endif public IObservable> Changed => _changed.Value; /// [IgnoreDataMember] [JsonIgnore] +#if !MONO + [Browsable(false)] + [Display(Order = -1, AutoGenerateField = false, AutoGenerateFilter = false)] +#endif public IObservable ThrownExceptions => _thrownExceptions.Value; /// diff --git a/src/ReactiveUI/ReactiveObject/ReactiveRecord.cs b/src/ReactiveUI/ReactiveObject/ReactiveRecord.cs index 5618fc2585..4ced910b1b 100644 --- a/src/ReactiveUI/ReactiveObject/ReactiveRecord.cs +++ b/src/ReactiveUI/ReactiveObject/ReactiveRecord.cs @@ -72,18 +72,30 @@ public ReactiveRecord() /// [IgnoreDataMember] [JsonIgnore] +#if !MONO + [Browsable(false)] + [Display(Order = -1, AutoGenerateField = false, AutoGenerateFilter = false)] +#endif public IObservable> Changing => // TODO: Create Test _changing.Value; /// [IgnoreDataMember] [JsonIgnore] +#if !MONO + [Browsable(false)] + [Display(Order = -1, AutoGenerateField = false, AutoGenerateFilter = false)] +#endif public IObservable> Changed => // TODO: Create Test _changed.Value; /// [IgnoreDataMember] [JsonIgnore] +#if !MONO + [Browsable(false)] + [Display(Order = -1, AutoGenerateField = false, AutoGenerateFilter = false)] +#endif public IObservable ThrownExceptions => _thrownExceptions.Value; /// diff --git a/src/ReactiveUI/ReactiveUI.csproj b/src/ReactiveUI/ReactiveUI.csproj index 8d0fe0af61..f19d426158 100644 --- a/src/ReactiveUI/ReactiveUI.csproj +++ b/src/ReactiveUI/ReactiveUI.csproj @@ -36,6 +36,7 @@ + @@ -106,6 +107,7 @@ +