Hi recently i updated to 9 and suddenly i have problem with command binding which i did not have before.
Could someone explain me why this is working
var bt4 = new Button()
.Text("Confirm All")
.Center();
bt4.SetBinding(Button.CommandProperty, new Binding(nameof(vm.ConfirmAllAlarmsCommand),
mode: BindingMode.OneTime));
but this runs into error
var bt4 = new Button()
.Text("Confirm All")
.Center()
.Bind(Button.CommandProperty, getter: static (ActiveAlarmSummaryViewModel vm) =>
vm.ConfirmAllAlarmsCommand, mode: BindingMode.OneWay);
System.TypeLoadException: 'Method 'ApplyToResolvedSource' in type
'CommunityToolkit.Maui.Markup.TypedBinding`2' from assembly
'CommunityToolkit.Maui.Markup, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
does not have an implementation.'
I have quite standard view that have viewmodel injected in the constructor, and the command is a [RelayCommand] from toolkit
Hi recently i updated to 9 and suddenly i have problem with command binding which i did not have before.
Could someone explain me why this is working
var bt4 = new Button()
.Text("Confirm All")
.Center();
bt4.SetBinding(Button.CommandProperty, new Binding(nameof(vm.ConfirmAllAlarmsCommand),
mode: BindingMode.OneTime));
but this runs into error
var bt4 = new Button()
.Text("Confirm All")
.Center()
.Bind(Button.CommandProperty, getter: static (ActiveAlarmSummaryViewModel vm) =>
vm.ConfirmAllAlarmsCommand, mode: BindingMode.OneWay);
System.TypeLoadException: 'Method 'ApplyToResolvedSource' in type
'CommunityToolkit.Maui.Markup.TypedBinding`2' from assembly
'CommunityToolkit.Maui.Markup, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
does not have an implementation.'
I have quite standard view that have viewmodel injected in the constructor, and the command is a [RelayCommand] from toolkit
Share Improve this question asked Nov 19, 2024 at 10:48 Martin ZazvorkaMartin Zazvorka 778 bronze badges 01 Answer
Reset to default 1First of all, I can reproduce your problem with the nuget package CommunityToolkit.Maui.Markup
version 4.2.0. And when I downgrade the version to version 4.1.0, the Bind()
can work successfully.
Here is my code:
public MainPage(MyVM myVM)
{
InitializeComponent();
BindingContext = myVM;
var button = new Button()
.Text("Test")
.Center()
.Bind(Button.CommandProperty,getter:static(MyVM vm)=>vm.TestCommand,mode:BindingMode.OneWay);
layout.Children.Insert(0, button);
// there is <VerticalLayout x:Name="layout".../> in the xaml
}