gpt4 book ai didi

c# - 启动时未调用 ValueConverter

转载 作者:太空宇宙 更新时间:2023-11-03 21:47:52 39 4
gpt4 key购买 nike

我有一个绑定(bind)到集合的组合框。集合中的每个项目都有一个可能包含也可能不包含项目的子集合。我有第二个组合框,子集合绑定(bind)到该组合框。如果子集合有项目,我只想显示 (=Visibility.Visible) 第二个组合框。所有的工作。但是:当我启动我的程序时,主组合框的 selectedItem 为空(=到目前为止没有选择任何内容)。这(我猜)导致转换器不被调用(它没有,我在转换器上设置了一个断点并且程序在启动时不会停止)。

所以我有一个问题,我不想在程序启动时显示第二个组合框。我可以强制调用 ValueConverter 吗?我试过在构造函数的末尾调用 OnPropertyChanged,但这并没有改变任何东西。当我在 .xaml.cs 的构造函数中将组合框设置为 Visible.Hidden 时,它根本不会显示,即使在调用值转换器之后也是如此。有什么想法吗?

最佳答案

为绑定(bind)设置一个FallbackValue:

<SomeUIElement Visibility="{Binding SomeBinding, Converter={StaticResource SomeConverter}, FallbackValue=Hidden}" />

当没有任何绑定(bind)时,您可以设置一个值来代替绑定(bind)。

将代码隐藏中的值更改为 Visibility.Hidden 使其始终不可见的原因是因为设置该属性会显式删除您在 XAML 中添加的绑定(bind)

关于c# - 启动时未调用 ValueConverter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16038066/

39 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com