c# - 处理 wpf ComboBox ItemsSource 在选择时更改
问题描述
我有一个 wpf 用户界面,在其中我使用 ComboBox 将属性设置为一个值。ComboBox 的 ItemsSource 具有与允许值列表的绑定。我已经这样做了,因此该列表是允许值的列表,但当前选择的值已从中删除。这样,列表只包含一个可以实际更改的值。当列表为空时,我有一个触发器使组合框处于非活动状态。
就预期行为而言,这一切都运作良好。但是在视觉上我有多个红色边框显示验证错误,因为 selectedvalue 在更新时不再位于 itemssource 列表中。当我在更新时没有从 ItemsSource 中删除当前 SelectedValue 时,没有红色边框。
有没有办法解决这个问题,也许我可以使用另一个控件,或者可能以某种方式验证另一个列表(包含当前值)中的 SelectedValue 与 ItemsSource 中的相比?
解决方案
您实际上无法选择不在ItemsSource
. 您可以做的是通过将Validation.ErrorTemplate
附加属性设置为空来删除出现验证错误时显示的红色边框ControlTemplate
:
<ComboBox ...>
<Validation.ErrorTemplate>
<ControlTemplate/>
</Validation.ErrorTemplate>
</ComboBox>
推荐阅读
- reactjs - 如何将引用从无状态传递到容器(丢失引用)
- r - 如何从 R 中的矩阵绘制热图或等高线图?
- laravel - 如何在 Laravel 的 View 方法中传递变量
- php - Js / Php - 我无法使用 ssh 打开文件
- wordpress - 如何为每个带有区域的产品定制运费?
- html - 如何ng隐藏一个div
- osgi - 在 Equinox 中运行 Xtext
- elasticsearch - Elasticsearch - Kubernetes [握手失败,集群名称不匹配]
- prestashop - 如何在 Prestashop 1.6 中以编程方式添加新客户组
- excel - VBA以特定格式将Excel单元格复制到Word