繁体   English   中英

删除布局元素的最佳方法是什么

[英]What is the best way to remove a layout element

我在异步加载带有webclient对象的图像时显示进度条。 下载完图像后,我在视图模型中将loadingComplete bool属性设置为True,以指示加载过程已完成。 当前,我将此值用于附加属性以将焦点设置在控件上。

我想要的是折叠进度条控件,然后显示图像。

我想知道什么是最好的方法,以下方法的优缺点是什么?

我是不是该

1)在viewmodel上创建一个LoadingOpacity bool属性,然后可以将其设置为将进度条的不透明度设置为0.0(在设置了loadingComplete时将设置此属性)?

2)还是我应该创建一个Converter(IValueConverter)并使用loadingComplete属性将其转换为Visibility.Collapsed值。 这样,我的视图模型中不需要任何其他属性吗?

3)还是应该在视图模型上创建一个折叠属性,并将其绑定到进度条的可见性属性?

4)或是否还有其他方法可以做到这一点?

谢谢JD

  1. 由于鼠标命中测试,我不会采用不透明解决方案。 您的透明元素仍将是命中测试可见的,但是您可能希望在下载完成后淡化进度条,但是由事件触发的故事板可能是一个更好的选择。
  2. 我个人喜欢价值转换器,它们简单,简洁,描述性强并且意义深远。 这也被广泛接受为正确的选择。
  3. MVVM最佳实践规定,视图模型不了解该视图。 通过将Visibility类型属性引入视图模型,您可以通过某种方式(尽管很短)将其耦合到视图。
  4. 大概:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM