在视图加载时隐藏 UIView - Xamarin iOS 和 MvvmCross
Hide UIView on view load - Xamarin iOS and MvvmCross
我试图在视图加载时隐藏一个 ui 元素。我正在使用 Xamarin iOS 和 MvvmCross (6.2.3.0)。在我看来,我创建了一个 ui 文本字段并添加了以下绑定:
public override void ViewDidLoad()
{
//adding uitextfield
var set - this.CreateBindingSet(MyViewConroller, MyViewModel>();
set.Bind(uitextfield).For("Visibility").To(vm => vm.FieldVisibility).TwoWay().WithConversion("Visibility");
}
这是我的视图模型:
public MyViewModel : MvxViewModel
{
private bool _fieldVisibility;
public bool FieldVisibility
{
get {return _fieldVisibility;}
set {
SetProperty(ref _fieldVisibility, value);
}
public override Task Initialize() {
FieldVisibility = false;
}
但是当加载视图时,我的 uitextfield 仍然可见。我尝试调用 RaisePropertyChanged,但没有帮助:
private bool _fieldVisibility;
public bool FieldVisibility
{
get {return _fieldVisibility;}
set {
SetProperty(ref _fieldVisibility, value);
RaisePropertyChanged(nameof(FieldVisibility));
}
当我更改其他一些视图模型 属性 并简单地调用时,它起作用了:
private string _otherProperty;
public string OtherProperty
{
get {return _otherProperty;}
set {
SetProperty(ref _otherProperty, value);
FieldVisibility = false;
RaisePropertyChanged(nameof(FieldVisibility));
}
但我想在视图加载时隐藏此 ui 文本字段。你能为此提出任何解决方案吗?如果有任何提示,我将不胜感激。谢谢!!
我们现在对这样的东西有强类型绑定:
set.Bind(uitextfield).For(v => v.BindVisible()).To(vm => vm.FieldVisibility);
你在这里真的不需要可见性转换器,没有它应该也能工作。
记得还要在您的绑定集上调用 Apply()
。
另外 TwoWay()
不会在这里做任何事情,因为没有绑定目标允许 UIView 可见性的双向绑定。
我试图在视图加载时隐藏一个 ui 元素。我正在使用 Xamarin iOS 和 MvvmCross (6.2.3.0)。在我看来,我创建了一个 ui 文本字段并添加了以下绑定:
public override void ViewDidLoad()
{
//adding uitextfield
var set - this.CreateBindingSet(MyViewConroller, MyViewModel>();
set.Bind(uitextfield).For("Visibility").To(vm => vm.FieldVisibility).TwoWay().WithConversion("Visibility");
}
这是我的视图模型:
public MyViewModel : MvxViewModel
{
private bool _fieldVisibility;
public bool FieldVisibility
{
get {return _fieldVisibility;}
set {
SetProperty(ref _fieldVisibility, value);
}
public override Task Initialize() {
FieldVisibility = false;
}
但是当加载视图时,我的 uitextfield 仍然可见。我尝试调用 RaisePropertyChanged,但没有帮助:
private bool _fieldVisibility;
public bool FieldVisibility
{
get {return _fieldVisibility;}
set {
SetProperty(ref _fieldVisibility, value);
RaisePropertyChanged(nameof(FieldVisibility));
}
当我更改其他一些视图模型 属性 并简单地调用时,它起作用了:
private string _otherProperty;
public string OtherProperty
{
get {return _otherProperty;}
set {
SetProperty(ref _otherProperty, value);
FieldVisibility = false;
RaisePropertyChanged(nameof(FieldVisibility));
}
但我想在视图加载时隐藏此 ui 文本字段。你能为此提出任何解决方案吗?如果有任何提示,我将不胜感激。谢谢!!
我们现在对这样的东西有强类型绑定:
set.Bind(uitextfield).For(v => v.BindVisible()).To(vm => vm.FieldVisibility);
你在这里真的不需要可见性转换器,没有它应该也能工作。
记得还要在您的绑定集上调用 Apply()
。
另外 TwoWay()
不会在这里做任何事情,因为没有绑定目标允许 UIView 可见性的双向绑定。