如何将视图的BackgroundColor属性绑定到Xamarin Forms中的视图模型?

海梅·桑托斯(Jaime Santos)

因此,我正在使用Fresh MVVM制作Xamarin Forms中的应用程序,并且我希望在按下按钮且仅在按钮的BackgroundColor为白色时执行事件。该按钮的backgroundColor将在XAML.CS中更改,而此事件将在ViewModel中发生。

问题在于,使用当前代码,我拥有ViewModel的属性时,所有原色和属性均设置为0,而不是实际的按钮颜色属性。我已经在寻找答案了,但是没有任何帮助。

XAML代码如下:

<Button
            x:Name="Button_NextStep"
            HeightRequest="50"
            WidthRequest="400"
            BackgroundColor="{Binding NextStepBackgroundColor}"
            CornerRadius="30"

            Text="Next step"
            TextColor="#4847FF"
            FontAttributes="Bold"
            FontSize="20"

            VerticalOptions="Start"
            HorizontalOptions="Start"
            Margin="25,178,25,5"

            Command="{Binding NextStep}"
></Button>

ViewModel代码:

class CreateAccount_UsernameViewModel: FreshBasePageModel
    {
        public ICommand NextStep { get; set; }
        public Color NextStepBackgroundColor { get; set; }

        public InavigationService navigationService; //this is irrelevant for this question

        public CreateAccount_UsernameViewModel(InavigationService _navService)
        {
            navigationService = _navService; //this is irrelevant for this question

            NextStep = new Command(() =>
            {
                if (NextStepBackgroundColor == Color.FromHex("#FFD3D3D3"))
                    navigationService.SwitchNavigationStacks(Enums.NavigationStacks.CreateAccount, this); //this is irrelevant for this question
            });
        }
    }

就是如此,如果您需要更多信息来简化解决方案,我将在收到您的请求后立即将其提供给您。谢谢大家的时间,希望您过得愉快。

发现错误280猴子

主要的绑定模式是-(Expect OneTime和Default(从名称中不言自明))

  1. OneWay=将ViewModel中的值更改设置为View(此处按钮)。这是大多数属性的默认设置。

  2. TwoWay=在ViewModel和View中的值更改都得到通知。这被设置为属性,从源极侧变化,如Text财产EntrySelectedItem财产ListView,等等。

  3. OneWayToSource = View中的值更改已通知给ViewModel,但ViewModel中的值更改未通知给View。

您的方案中的问题,默认情况下ofBindingModeofBackgroundColor属性ButtonOneWay没有意义BindingModeBackgroundColorButton因为TwoWay值不会从控制端更改,因此保留of也是没有意义的

但是BackgroundColor属性的更改必须反映在ViewModel中,因此BindingMode必须设置为OneWayToSource

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将SwitchCell文本颜色绑定到Xamarin.Forms中的视图模型

Xamarin Forms:如何将数据从两个视图模型正确绑定到单个视图?

如何绑定到 C# Xamarin Forms 中的视图模型?

我们如何将xamarin形式的通用视图模型中的列表项“网格宽度”绑定到“属性”?

Xamarin.Forms 如何将代码中的数据绑定到滑动视图(在 xaml 中工作)

如何将模型中的 Float 值绑定到 SwiftUI 视图中的 @Binding:Float 属性

MvvmCross-如何将UIView.Layer.AnyProperty(Xamarin.iOS)绑定到视图模型上的属性?

如何将视图模型中的功能绑定到swiftui中的自定义视图?

更改视图模型中的 xamarin.forms 绑定

在 ListView 如何将单击的对象发送回视图模型中的命令 - Xamarin Forms

如何将标签绑定到Xamarin中的属性?

Universal Apps:如何将ListViewItem(容器)的属性绑定到实际项目(视图模型)?

如何将列表模型绑定到视图?

如何将DateTime属性绑定到我的视图模型?

Xamarin:如何将信息从提示传递到视图模型

Xamarin表单中的视图到不同视图模型的绑定

如何将TabControl内容的数据上下文绑定到ObservableCollection中的视图模型的实例

如何将值从TextBox绑定到Mvvm Light中的视图模型

如何将多个模型中的数据绑定到单个视图中的列表

如何将ListBox绑定到xaml中的视图模型的成员?

XAML data.binding-如何将方法中的属性绑定到视图中的经度/纬度?

Aurelia:如何将子DOM元素的视图模型绑定到父视图模型?

如何从视图模型将Func <T,T,T>绑定到XAML中的依赖项属性?

如何将命令与视图模型绑定?

如何将一个用户控件的视图模型中的属性绑定到另一个用户控件中的属性

如何在 Xamarin 中将数据从视图绑定到视图模型?

如何将字符串属性绑定到视图中的单选按钮?

如何将 SwiftUI 视图绑定到数组中元素的属性

将视图模型的属性绑定到依赖属性