什么是同时在Silverlight中启用或禁用多个控件的最佳方法(文本框,组合框,自动完成框等)?
我想我可以将每个控件的“IsEnabled”属性绑定到布尔属性。该属性仅适用于交互式控件而非文本块。
我可以递归地遍历孩子并适当地设置他们的属性,但这似乎不够优雅。
理想情况下,我想在控件的父容器上设置一些类似禁用的属性,使TextBlocks看起来与Windows窗体类似。
有没有办法只禁用父容器?
答案 0 :(得分:4)
使用ContentControl Silverlight提供。
<ContentControl x:Name="GroupOfControls" >...Your controls...</ContentControl>
//Enable and Disable
GroupOfControls.IsEnabled = false;
答案 1 :(得分:3)
您可以使用与StackOverflow 1545844
中的答案类似的ViewModel方法通过计算IsEnabled属性,您可以绑定View中应该由此属性控制的元素。
答案 2 :(得分:1)
通常我总是创建一个ControlHandler类来执行控件上的所有更新。 (只是为了分开关注)
最近我们不得不重置表单上的所有控件,并且不想遍历每个控件。
所有与控件相关的数据逻辑都在ControlHandler类中更新。
然后我们只将值适当的值/属性应用到我们的控件上。
这是一种解决方法,但对我们来说效果非常好而且干净利落。
当然,有更好的方法来解决这个问题......
答案 3 :(得分:1)
我正在考虑从Web服务获取数据时禁用多个控件。 BusyIndicator控件只需很少的努力就能得到我所需要的东西。 也许这对其他人来说也是一个很好的解决方案。
答案 4 :(得分:0)
使用UserControl换行并设置其IsEnabled属性。
...