在Silverlight中启用或禁用多个控件

时间:2009-10-14 17:43:51

标签: silverlight silverlight-3.0 controls formatting

什么是同时在Silverlight中启用或禁用多个控件的最佳方法(文本框,组合框,自动完成框等)?

  • 我想我可以将每个控件的“IsEnabled”属性绑定到布尔属性。该属性仅适用于交互式控件而非文本块。

  • 我可以递归地遍历孩子并适当地设置他们的属性,但这似乎不够优雅。

  • 理想情况下,我想在控件的父容器上设置一些类似禁用的属性,使TextBlocks看起来与Windows窗体类似。

有没有办法只禁用父容器?

5 个答案:

答案 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服务获取数据时禁用多个控件。 BusyIndi​​cator控件只需很少的努力就能得到我所需要的东西。 也许这对其他人来说也是一个很好的解决方案。

答案 4 :(得分:0)

使用UserControl换行并设置其IsEnabled属性。

       ...