选择组合框中的项目将禁用所有其他项目中的相同项目

时间:2015-06-18 18:41:13

标签: c# wpf combobox

假设我有多个组合框,每个组合都有相同的项目列表。

如果在任何一个组合框中选择了一个项目,则需要在所有其他组合框中禁用给定项目。

如果用户更改了任何组合框的选择,那么之前选择的项目应该可以在所有组合框中自由选择。

这是为了防止用户在所有组合框中选择重复的项目。

我知道这听起来像一组复选框可以做到这一点,但在这种情况下,我不能这样做。每个组合框都与其他东西相关联,它们都指向一个共同的项目池。我需要知道什么与什么相关。

关于如何实现这一目标的任何想法?

<ComboBox x:Name="cb1">
    <ComboBoxItem>asdf</ComboBoxItem>
    <ComboBoxItem>qwerty</ComboBoxItem>
    <ComboBoxItem>1234</ComboBoxItem>
    <ComboBoxItem>zxcv</ComboBoxItem>
</ComboBox>

<ComboBox x:Name="cb2">
    <ComboBoxItem>asdf</ComboBoxItem>
    <ComboBoxItem>qwerty</ComboBoxItem>
    <ComboBoxItem>1234</ComboBoxItem>
    <ComboBoxItem>zxcv</ComboBoxItem>
</ComboBox>

<ComboBox x:Name="cb3">
    <ComboBoxItem>asdf</ComboBoxItem>
    <ComboBoxItem>qwerty</ComboBoxItem>
    <ComboBoxItem>1234</ComboBoxItem>
    <ComboBoxItem>zxcv</ComboBoxItem>
</ComboBox>

2 个答案:

答案 0 :(得分:0)

如果列表itens相同,当用户选择组合框时,您可以遍历每个组合框的itens并禁用具有相同值的项目。

答案 1 :(得分:-1)

这是一个Web项目,您可以使用jquery来验证组合框。你应该给每个组合一个id并验证“onChange”方法,然后如果一个组合被改变,其他组合将被锁定或根据它们的值改变。

相关问题