Xamarin.forms 在OnBindingContextChanged事件中生成ViewCell可以吗?

Xamarin.forms 在OnBindingContextChanged事件中生成ViewCell可以吗?,xamarin.forms,Xamarin.forms,我有一些自定义的ViewCell元素,其中大多数根据BindingContext的一些属性显示和隐藏一些组件。我需要检查一些属性的值,在ViewCell中显示和隐藏一些元素,并相应地调整单元格高度 我没有为大多数属性编写值转换器,而是将BindingContext转换为底层类型,并在OnBindingContextChanged事件中检查属性的值,然后使用相关控件构建UI 你认为这是一种糟糕的方式吗?或者它还可以吗?我认为这听起来与MVVM模型的直观性背道而驰。将控件的IsVisible属性绑定

我有一些自定义的ViewCell元素,其中大多数根据BindingContext的一些属性显示和隐藏一些组件。我需要检查一些属性的值,在ViewCell中显示和隐藏一些元素,并相应地调整单元格高度

我没有为大多数属性编写值转换器,而是将BindingContext转换为底层类型,并在OnBindingContextChanged事件中检查属性的值,然后使用相关控件构建UI


你认为这是一种糟糕的方式吗?或者它还可以吗?

我认为这听起来与MVVM模型的直观性背道而驰。将控件的IsVisible属性绑定到ModelView中确定的属性不是最好的方法吗

e、 g

var label=新标签();
label.setBinding(label.IsVisibleProperty,vm=>vm.IsLabelVisible,BindingMode.TwoWay);
然后,可以在ViewModel实例中控制IsLabelVisible属性的值


一个值得考虑的是绘制周期,我建议在布局类中用缠绕的可见性状态来包装元素。

< P>查看DataTemplateSelector模式(类似于WPF):

var label = new Label();
label.setBinding<ViewModel>(Label.IsVisibleProperty, vm => vm.IsLabelVisible, BindingMode.TwoWay);