Silverlight中带有复选框和单个复选框的列表框

Silverlight中带有复选框和单个复选框的列表框,silverlight,listbox,checkbox,coding-style,Silverlight,Listbox,Checkbox,Coding Style,我需要一个列表框,其中将包含几个选项。我需要的是复选框,不是单选按钮。是否有任何方法我现在只能允许1个复选框?我使用的是MVVM,所以我不能手动检查或取消检查,这是违反规则的。 如果我不能实现这样的功能,有没有简单的方法让单选按钮看起来像复选框?除了有缺陷的要求*,唯一的方法是取消选中所有复选框,然后选中特定的索引复选框 或者,因为它做同样的事情,但听起来更长,遍历所有指示的复选框,找到哪个设置为true,哪个不是您想要选中的,然后将其设置为false 有缺陷的需求:一系列复选框向任何用户指示允

我需要一个列表框,其中将包含几个选项。我需要的是复选框,不是单选按钮。是否有任何方法我现在只能允许1个复选框?我使用的是MVVM,所以我不能手动检查或取消检查,这是违反规则的。
如果我不能实现这样的功能,有没有简单的方法让单选按钮看起来像复选框?

除了有缺陷的要求*,唯一的方法是取消选中所有复选框,然后选中特定的索引复选框

或者,因为它做同样的事情,但听起来更长,遍历所有指示的复选框,找到哪个设置为true,哪个不是您想要选中的,然后将其设置为false

有缺陷的需求:一系列复选框向任何用户指示允许他们选择零个或多个项目。一系列单选按钮表示只允许选择一个。这是在Windows3之前就已经深入用户的东西,所有非IT人员都不会质疑。你会打破他们的心理模式,这比看起来漂亮更糟糕。请让管理层修改此要求。
HTTH。YMMV.

如果您使用的是MVVM,并且需要遵守规则,那么您的ViewModel应该有一个复选框绑定的属性。由ViewModel中的代码决定,以确保此属性的状态正确


因此,ViewModel中一个属性设置为true的代码可能需要在集合中查找相似的项,这些项的匹配属性需要强制设置为false。然后视图只反映ViewModel的当前状态。

好吧,最后,我使用了这个

好吧,这不是我的要求。不幸的是,这是无可争辩的。我怎么能一次取消选中所有的复选框?@walkor~我想我不明白这个问题。你不知道怎么做?复选框列表{cbx.Checked=false;}中的foreach复选框cbx,或者您不知道如何选择所有相关的复选框,或者。。。我认为取消选中所有复选框的建议很简单,但我已经这么做很长时间了,所以建议可能并不简单。你告诉我你不明白什么。首先,您是如何生成复选框的?更新您的问题。我的问题很清楚,xaml.cs文件中没有代码。我不能在MVVM的复选框列表中调用-foreach CheckBox cbx。@Walkor~您能在客户端上这样做吗?使用jQuery或类似的库,并在特定的div或tr或任何地方选中所有复选框。同样的逻辑也适用在某个时刻,您拥有所有复选框和用户响应的模型。这就是你做检查/取消检查的时候。绑定将带回查看regen。嗯,是的,我考虑过这个想法,但我也希望有更好的方法。只是为了确保-您建议迭代项集合,用选中/未选中状态标记项,并使绑定反映这些更改,对吗?