ValueConverter未启动时调用

时间:2013-04-16 13:14:11

标签: c# wpf data-binding ivalueconverter

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

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

1 个答案:

答案 0 :(得分:4)

为绑定设置FallbackValue

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

当没有任何限制时,您可以设置一个将用于代替绑定的值。

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