【问题标题】:Deal with wpf ComboBox ItemsSource changing upon selection处理 wpf ComboBox ItemsSource 在选择时更改
【发布时间】:2020-01-15 10:10:45
【问题描述】:

我有一个 wpf 用户界面,我在其中使用 ComboBox 将属性设置为一个值。 ComboBox 的 ItemsSource 具有与允许值列表的绑定。我已经这样做了,因此该列表是允许值的列表,但当前选择的值已从中删除。这样,列表只包含可以实际更改的值。当列表为空时,我有一个触发器使组合框处于非活动状态。

就预期行为而言,这一切都运行良好。但是在视觉上我有多个红色边框显示验证错误,因为 selectedvalue 在更新时不再位于 itemssource 列表中。当我在更新时没有从 ItemsSource 中删除当前 SelectedValue 时,没有红色边框。

有没有办法解决这个问题,也许我可以使用另一个控件,或者可能以某种方式验证另一个列表(将包含当前值)中的 SelectedValue 与 ItemsSource 中的相比?

【问题讨论】:

    标签: c# wpf combobox


    【解决方案1】:

    您实际上不能选择不在ItemsSource 中的值。您可以做的是通过将Validation.ErrorTemplate附加属性设置为空ControlTemplate来删除出现验证错误时显示的红色边框:

    <ComboBox ...>
        <Validation.ErrorTemplate>
            <ControlTemplate/>
        </Validation.ErrorTemplate>
    </ComboBox>
    

    【讨论】:

    • 我明白了。是否有其他元素可以让我从列表中进行选择,以解耦验证?
    • 没有。没有这样的内置控件。
    猜你喜欢
    • 2017-08-20
    • 2014-01-26
    • 2013-03-03
    • 2019-09-11
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多