ich habe eine ListBox an der einen ObservableCollection gebunden ist. Das funktioniert wunderbar. Füge ich ein item hinzu wird es direkt angezeigt und entferne ich eines wird es auch direkt aus der Liste entfernt.
Jetzt habe ich einen Textblock den ich gerne Anzeigen möchte wenn besagt ObservableCollection keine Einträge mehr hat. Dies wollte ich über ein Binding machen und mit einen Converter sieht dann so aus:
<TextBlock Text="Teststring" Visibility="{Binding ListOfItems, Converter={StaticResource CollectionLengthToVisibilityInvert}}" />
Mein Converter sieht wie folgt aus:
public class CollectionLengthToVisibility : IValueConverter
{
public Boolean Invert { get; set; }
public object Convert(object value, Type targetType, object parameter, CultureInfo cultureInfo)
{
var collection = value as System.Collections.IEnumerable;
if (collection == null)
throw new ArgumentException("value");
if(Invert)
return collection.Cast<object>().Any() ? Visibility.Collapsed : Visibility.Visible;
else
return collection.Cast<object>().Any() ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo cultureInfo)
{
throw new NotImplementedException();
}
}
Jedoch wird die Konvertierung nur 1x ausgelöst beim Laden der Seite. Sollte dies nicht wieder passieren wenn ich z.b ein Element hinzufüge oder löschen?
Gruß
Alex