reactiveui / ReactiveUI

An advanced, composable, functional reactive model-view-viewmodel framework for all .NET platforms that is inspired by functional reactive programming. ReactiveUI allows you to abstract mutable state away from your user interfaces, express the idea around a feature in one readable place and improve the testability of your application.
https://www.reactiveui.net
MIT License
8.05k stars 1.12k forks source link

[Bug]: iOS BindCommand throws exception when executing on iPad (device) #3877

Open yvcabrerago opened 1 month ago

yvcabrerago commented 1 month ago

Describe the bug 🐞

Using Avalonia 11.0.10, when binding a command using BindCommand in the code behind of the view as follows:

public MainView()
{
    this.WhenActivated(disposed =>
    {
        this.BindCommand(ViewModel, vm => vm.MyCommand, v => v.Button).DisposeWith(disposed);
    });

    InitializeComponent();
}

The following exception is being throw:

Terminating app due to uncaught exception 'System.ArgumentException', reason: 'Property set method not found. (System.ArgumentException) at System.Reflection.RuntimePropertyInfo.SetValue(Object , Object , BindingFlags , Binder , Object[] , CultureInfo ) at System.Reflection.PropertyInfo.SetValue(Object obj, Object value, Object[] index) at ReactiveUI.CreatesCommandBindingViaCommandParameter.BindCommandToObject(ICommand command, Object target, IObservable1 commandParameter) in /_/src/ReactiveUI/Bindings/Command/CreatesCommandBindingViaCommandParameter.cs:line 60 at ReactiveUI.CreatesCommandBinding.BindCommandToObject(ICommand command, Object target, IObservable1 commandParameter) in /_/src/ReactiveUI/Bindings/Command/CreatesCommandBinding.cs:line 39

Step to reproduce

  1. Create a Cross Platform Avalonia Application.
  2. Create a ReactiveCommand and bind to a control in the code behing file of the view.
  3. Run the app using a iPad.

Reproduction repository

https://github.com/yvcabrerago/AvaloniaReactiveApplication

Expected behavior

The application should not crash.

Screenshots 🖼️

No response

IDE

Rider macOS

Operating system

No response

Version

No response

Device

IPad 10th generation, IPadOS 17.1.1

ReactiveUI Version

18.3.1

Additional information ℹ️

No response

ChrisPulman commented 3 weeks ago

Please could you try updating ReactiveUI to 20.1.1, let me know if this solves your issue, thank you.