我正在将一个ObservableCollection绑定到一个控件上,该控件具有转换器,根据集合是否有任何值来更改其可见性:
简化的例子:
XAML:
C#:
当集合被绑定时,当有值时矩形是可见的,当集合为空时矩形不可见。但是,如果集合为空并且我在运行时添加一个值,则矩形不会出现(转换器的Convert方法甚至都没有触发)。我是否遗漏了什么,或者只是对IValueConverter要求过高了?
简化的例子:
XAML:
<Window.Resources>
<local:MyConverter x:Key="converter"/>
</Window.Resources>
<Grid x:Name="grid">
<Rectangle Height="100" Width="200" Fill="CornflowerBlue"
Visibility="{Binding Converter={StaticResource converter}}"/>
<Button Content="click"
HorizontalAlignment="Left" VerticalAlignment="Top"
Click="Button_Click"/>
</Grid>
C#:
ObservableCollection<string> strings;
public MainWindow()
{
InitializeComponent();
strings = new ObservableCollection<string>();
grid.DataContext = strings;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
strings.Add("new value");
}
当集合被绑定时,当有值时矩形是可见的,当集合为空时矩形不可见。但是,如果集合为空并且我在运行时添加一个值,则矩形不会出现(转换器的Convert方法甚至都没有触发)。我是否遗漏了什么,或者只是对IValueConverter要求过高了?