我一個ObservableCollection綁定到具有轉換取決於如果集合有任何值,或不改變其可見性控制:WPF轉換器和ObservableCollections
簡單的例子:
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");
}
當收集綁定,當有值,而不是當集合爲空矩形是可見的。但是,如果集合爲空,並且我在運行時添加了一個值,則不會顯示Rectangle(轉換器的Convert方法甚至沒有被觸發)。我是否錯過了某些東西,或者只是想要問太多的IValueConverter?
所以......結合的ObservableCollection .Count中,使轉換器的工作如預期那麼我猜測,向集合中添加一個值不會引發PropertyChanged事件......我認爲這是一個臨時解決方案,它將對集合進行多重綁定,它是.Count方法,但這聽起來很討厭...... –