【问题标题】:ValueConverter not called on start up启动时未调用 ValueConverter
【发布时间】:2013-04-16 21:18:05
【问题描述】:

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

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

【问题讨论】:

  • 您是否尝试为绑定设置FallbackValue?当没有任何绑定时,您可以设置一个值来代替绑定

标签: c# wpf data-binding ivalueconverter


【解决方案1】:

为绑定设置FallbackValue

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

当没有绑定时,您可以设置一个值来代替绑定。

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

【讨论】:

  • 不到 5 分钟的完美答案。我爱SOF!非常感谢!
猜你喜欢
  • 1970-01-01
  • 2016-10-08
  • 1970-01-01
  • 2018-02-03
  • 2012-02-08
  • 1970-01-01
  • 2015-04-17
  • 2011-02-18
  • 1970-01-01
相关资源
最近更新 更多