WPF RadioButtonList从集合中设置IsEnabled和IsChecked属性

时间:2013-02-18 14:30:07

标签: wpf xaml wpf-controls isenabled

我重新设计了一个ListBox来从这个link

创建一个RadioButtonList

我的要求是这样的:我必须一次从ListBox中选择一个项目(即选择模式)。另外,我必须根据绑定到集合的属性禁用/启用ListBoxItem。所以我已经设置了

IsChecked="{TemplateBinding IsSelected}"

并绑定我的集合中的 IsEnabled 属性。

IsEnabled="{Binding IsEnabled}" 

结果如下: enter image description here

您可以看到某些记录处于禁用状态,但仍然可以选择。如果我删除 IsChecked 属性,它会按预期完美地运行。但我需要 IsEnabled & IsSelected functionlaity。 然后我为IsEnabled属性创建一个多值转换器,并根据值将相应的值绑定到属性。 现在我无法直观地从列表中选择禁用的项目。但是当我选择一个禁用的项目时,我会丢失选择。请检查图像: enter image description here

并在 IsChecked 属性后面的代码中设置为第一条记录。 我想限制这个选择。我怎样才能做到这一点?在xaml中有任何设置有助于满足我的要求吗?请建议......

提前致谢....

1 个答案:

答案 0 :(得分:1)

听起来你绑定了IsEnabled的{​​{1}}属性,而不是RadioButton。这会禁用ListBoxItem,但不会停用RadioButton,这就是为什么它仍然可以被选中。

您应该能够绑定ListBoxItem的{​​{1}}属性,它将按照您想要的方式工作。

根据您发布的链接转到您正在使用的样式,该链接位于IsEnabled样式的ListBoxItem部分:

ItemContainerStyle