Skip to content

Commit

Permalink
Marking Observable properties from ReactiveObject and ReactiveRecord … (
Browse files Browse the repository at this point in the history
#3695)

…as no browsable, no displayable, no autogenerateable and no
autofilterable for Winforms control databindings (and possibly for WPF
controls too)

Fixes #3694 

**What kind of change does this PR introduce?**
Assign new attributes on Observable properties for better hiding from
Winforms/WPF


**What is the current behavior?**
Those properties are autogenerated as controls


**What is the new behavior?**
Those properties are ignored as controls



**What might this PR break?**


**Please check if the PR fulfills these requirements**
- [ ] Tests for the changes have been added (for bug fixes / features)
- [ ] Docs have been added / updated (for bug fixes / features)

**Other information**:

---------

Co-authored-by: Michael-Jorge Gómez Campos <michael.gomez@rosclar.com>
  • Loading branch information
Micha-kun and Michael-Jorge Gómez Campos committed Dec 15, 2023
1 parent 14821ae commit 65377aa
Show file tree
Hide file tree
Showing 8 changed files with 81 additions and 4 deletions.
Expand Up @@ -715,12 +715,18 @@ namespace ReactiveUI
public class ReactiveObject : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged<ReactiveUI.IReactiveObject>, 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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<System.Exception> ThrownExceptions { get; }
Expand All @@ -744,12 +750,18 @@ namespace ReactiveUI
public class ReactiveRecord : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged<ReactiveUI.IReactiveObject>, ReactiveUI.IReactiveObject, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging, System.IEquatable<ReactiveUI.ReactiveRecord>
{
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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<System.Exception> ThrownExceptions { get; }
Expand Down Expand Up @@ -1046,4 +1058,4 @@ namespace ReactiveUI
public static System.IObservable<TRet> WhenAnyObservable<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(this TSender? sender, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T1>?>> obs1, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T2>?>> obs2, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T3>?>> obs3, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T4>?>> obs4, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T5>?>> obs5, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T6>?>> obs6, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T7>?>> obs7, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T8>?>> obs8, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T9>?>> obs9, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T10>?>> obs10, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T11>?>> obs11, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T12>?>> obs12, System.Func<T1?, T2?, T3?, T4?, T5?, T6?, T7?, T8?, T9?, T10?, T11?, T12?, TRet> selector)
where TSender : class { }
}
}
}
Expand Up @@ -715,12 +715,18 @@ namespace ReactiveUI
public class ReactiveObject : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged<ReactiveUI.IReactiveObject>, 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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<System.Exception> ThrownExceptions { get; }
Expand All @@ -744,12 +750,18 @@ namespace ReactiveUI
public class ReactiveRecord : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged<ReactiveUI.IReactiveObject>, ReactiveUI.IReactiveObject, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging, System.IEquatable<ReactiveUI.ReactiveRecord>
{
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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<System.Exception> ThrownExceptions { get; }
Expand Down Expand Up @@ -1046,4 +1058,4 @@ namespace ReactiveUI
public static System.IObservable<TRet> WhenAnyObservable<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(this TSender? sender, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T1>?>> obs1, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T2>?>> obs2, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T3>?>> obs3, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T4>?>> obs4, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T5>?>> obs5, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T6>?>> obs6, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T7>?>> obs7, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T8>?>> obs8, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T9>?>> obs9, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T10>?>> obs10, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T11>?>> obs11, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T12>?>> obs12, System.Func<T1?, T2?, T3?, T4?, T5?, T6?, T7?, T8?, T9?, T10?, T11?, T12?, TRet> selector)
where TSender : class { }
}
}
}
Expand Up @@ -715,12 +715,18 @@ namespace ReactiveUI
public class ReactiveObject : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged<ReactiveUI.IReactiveObject>, 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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<System.Exception> ThrownExceptions { get; }
Expand All @@ -744,12 +750,18 @@ namespace ReactiveUI
public class ReactiveRecord : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged<ReactiveUI.IReactiveObject>, ReactiveUI.IReactiveObject, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging, System.IEquatable<ReactiveUI.ReactiveRecord>
{
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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<System.Exception> ThrownExceptions { get; }
Expand Down Expand Up @@ -1039,4 +1051,4 @@ namespace ReactiveUI
public static System.IObservable<TRet> WhenAnyObservable<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(this TSender? sender, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T1>?>> obs1, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T2>?>> obs2, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T3>?>> obs3, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T4>?>> obs4, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T5>?>> obs5, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T6>?>> obs6, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T7>?>> obs7, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T8>?>> obs8, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T9>?>> obs9, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T10>?>> obs10, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T11>?>> obs11, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T12>?>> obs12, System.Func<T1?, T2?, T3?, T4?, T5?, T6?, T7?, T8?, T9?, T10?, T11?, T12?, TRet> selector)
where TSender : class { }
}
}
}
Expand Up @@ -720,12 +720,18 @@ namespace ReactiveUI
public class ReactiveObject : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged<ReactiveUI.IReactiveObject>, 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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<System.Exception> ThrownExceptions { get; }
Expand All @@ -749,12 +755,18 @@ namespace ReactiveUI
public class ReactiveRecord : ReactiveUI.IHandleObservableErrors, ReactiveUI.IReactiveNotifyPropertyChanged<ReactiveUI.IReactiveObject>, ReactiveUI.IReactiveObject, Splat.IEnableLogger, System.ComponentModel.INotifyPropertyChanged, System.ComponentModel.INotifyPropertyChanging, System.IEquatable<ReactiveUI.ReactiveRecord>
{
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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<ReactiveUI.IReactivePropertyChangedEventArgs<ReactiveUI.IReactiveObject>> 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<System.Exception> ThrownExceptions { get; }
Expand Down Expand Up @@ -1051,4 +1063,4 @@ namespace ReactiveUI
public static System.IObservable<TRet> WhenAnyObservable<TSender, TRet, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>(this TSender? sender, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T1>?>> obs1, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T2>?>> obs2, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T3>?>> obs3, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T4>?>> obs4, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T5>?>> obs5, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T6>?>> obs6, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T7>?>> obs7, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T8>?>> obs8, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T9>?>> obs9, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T10>?>> obs10, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T11>?>> obs11, System.Linq.Expressions.Expression<System.Func<TSender, System.IObservable<T12>?>> obs12, System.Func<T1?, T2?, T3?, T4?, T5?, T6?, T7?, T8?, T9?, T10?, T11?, T12?, TRet> selector)
where TSender : class { }
}
}
}
3 changes: 3 additions & 0 deletions src/ReactiveUI/GlobalUsings.cs
Expand Up @@ -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;
Expand Down
12 changes: 12 additions & 0 deletions src/ReactiveUI/ReactiveObject/ReactiveObject.cs
Expand Up @@ -72,16 +72,28 @@ public ReactiveObject()
/// <inheritdoc />
[IgnoreDataMember]
[JsonIgnore]
#if !MONO
[Browsable(false)]
[Display(Order = -1, AutoGenerateField = false, AutoGenerateFilter = false)]
#endif
public IObservable<IReactivePropertyChangedEventArgs<IReactiveObject>> Changing => _changing.Value;

/// <inheritdoc />
[IgnoreDataMember]
[JsonIgnore]
#if !MONO
[Browsable(false)]
[Display(Order = -1, AutoGenerateField = false, AutoGenerateFilter = false)]
#endif
public IObservable<IReactivePropertyChangedEventArgs<IReactiveObject>> Changed => _changed.Value;

/// <inheritdoc/>
[IgnoreDataMember]
[JsonIgnore]
#if !MONO
[Browsable(false)]
[Display(Order = -1, AutoGenerateField = false, AutoGenerateFilter = false)]
#endif
public IObservable<Exception> ThrownExceptions => _thrownExceptions.Value;

/// <inheritdoc/>
Expand Down

0 comments on commit 65377aa

Please sign in to comment.