【问题标题】:How do I disable Expander expansion based on a property如何禁用基于属性的扩展器扩展
【发布时间】:2015-03-12 11:46:04
【问题描述】:

我遇到了 Telerik 扩展器 IsExpanded 位的问题

  • 场景-

如果绑定属性为 False,用户应该无法展开扩展器,如果扩展器已展开,则应该自行关闭。

  • 实施 -

我做了这样一个简单的样式--

<Style TargetType="telerik:RadExpander">
    <Style.Triggers>
        <DataTrigger Binding="{Binding CanMultiSelect}" Value="False">
            <Setter Property="IsExpanded" Value="False"></Setter>
            <Setter Property="IsEnabled" Value="False"></Setter>
        </DataTrigger>
     </Style.Triggers>
 </Style>

此样式部分工作正常,因此当 canMultiSelect 为 false 时,它​​会按原样禁用扩展器,但如果扩展器在属性为 false 时展开,它不会自行关闭。

任何想法或其他实现表示赞赏。

-- 编辑

我已经尝试过使用 wpf 扩展器,但没有区别

【问题讨论】:

  • IsExpanded 是否绑定在 Expander 上?你设置初始值吗?
  • 初始值设置为 false,但我尝试过或不使用它,扩展扩展器会禁用但不会自行关闭

标签: c# .net wpf telerik expander


【解决方案1】:

试试:

<Style TargetType="telerik:RadExpander">
    <Setter Property="IsEnabled" Value="True">
    <Style.Triggers>
        <DataTrigger Binding="{Binding CanMultiSelect}" Value="False">
            <Setter Property="IsExpanded" Value="False"></Setter>
            <Setter Property="IsEnabled" Value="False"></Setter>
        </DataTrigger>
     </Style.Triggers>
 </Style>

这意味着默认 IsEnabled 将为 true,而当 CanMultiSelect 为 false 时,这些设置为 false

【讨论】:

  • nop,没有区别,另外,当 canMultiSelect 为 true 时,我不希望它扩展,我只是希望它可以扩展..
  • 在这种情况下,它可能是 Telerik 控件中的错误。从您的 Xaml 中,您所期望的应该可以正常工作
  • 是的,这就是我现在的想法,让我试试其他扩展器
  • WPF 扩展器的工作原理是这样的......现在不知道出了什么问题。
  • 可能与 Telerik 控件上的绑定不是双向或类似的东西有关
【解决方案2】:

您不需要通过 setter 设置 IsExpanded 的值。相反,您应该在 ViewModel 上创建一个相应的属性并绑定到它:

... IsExpanded={Binding IsExpandedPropertyOnViewModel} ...

然后,在IsExpandedPropertyOnViewModel 的设置器中,您可以实现所需的任何逻辑,并将支持字段保留为false,即使值为true

bool _isExpandedPropertyOnViewModel=false;
public bool IsExpandedPropertyOnViewModel{
   get { return _isExpandedPropertyOnViewModel;}
   set
   {
      if(CanMultiSelect)
      {
         _isExpandedPropertyOnViewModel=false;     
      }
      else
         _isExpandedPropertyOnViewModel=value;     
      NotifyPropertyChanged(...);
   }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多