gpt4 book ai didi

ios - 在 View 加载时隐藏 UIView - Xamarin iOS 和 MvvmCross

转载 作者:行者123 更新时间:2023-11-29 11:28:02 25 4
gpt4 key购买 nike

我试图在 View 加载时隐藏一个 ui 元素。我正在使用 Xamarin iOS 和 MvvmCross (6.2.3.0)。在我看来,我创建了一个 uitextfield 并添加了以下绑定(bind):

public override void ViewDidLoad()
{
//adding uitextfield
var set - this.CreateBindingSet(MyViewConroller, MyViewModel>();
set.Bind(uitextfield).For("Visibility").To(vm => vm.FieldVisibility).TwoWay().WithConversion("Visibility");
}

这是我的 View 模型:

public MyViewModel : MvxViewModel
{
private bool _fieldVisibility;
public bool FieldVisibility
{
get {return _fieldVisibility;}
set {
SetProperty(ref _fieldVisibility, value);
}

public override Task Initialize() {
FieldVisibility = false;
}

但是当加载 View 时,我的 uitextfield 仍然可见。我尝试调用 RaisePropertyChanged,但没有帮助:

private bool _fieldVisibility;
public bool FieldVisibility
{
get {return _fieldVisibility;}
set {
SetProperty(ref _fieldVisibility, value);
RaisePropertyChanged(nameof(FieldVisibility));
}

它有效,当我更改其他一些 View 模型属性并简单地调用时:

private string _otherProperty;
public string OtherProperty
{
get {return _otherProperty;}
set {
SetProperty(ref _otherProperty, value);
FieldVisibility = false;
RaisePropertyChanged(nameof(FieldVisibility));
}

但我想在 View 加载时隐藏此 uitextfield。你能为此提出任何解决方案吗?如果有任何提示,我将不胜感激。谢谢!!

最佳答案

现在我们对这样的东西有强类型绑定(bind):

set.Bind(uitextfield).For(v => v.BindVisible()).To(vm => vm.FieldVisibility);

这里你真的不需要可见性转换器,没有它应该也能工作。

请记住还要对您的绑定(bind)集调用 Apply()

此外,TwoWay() 不会在这里做任何事情,因为没有绑定(bind)目标允许双向绑定(bind)以实现 UIView 可见性。

关于ios - 在 View 加载时隐藏 UIView - Xamarin iOS 和 MvvmCross,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56741663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com