Apparemment, je ne comprends pas quelque chose à propos de la liaison ListBox
contrôles aux données.Silverlight: Difficile avec la liaison de données
Voici un ListBox
qui se lie à une propriété dans le code-behind:
<ListBox ItemsSource="FavoriteFilters"
x:Name="favoriteFiltersList"
Visibility="{Binding FavoriteFilters.IsEmpty, Converter={StaticResource visibilityConverter}}">
<ListBox.ItemTemplate>
<DataTemplate>
<my:FavoriteFilterLink />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Quand je fais cela, le ListBox
apparaît avec un seul élément peuplé de valeurs de repli, même si la source des éléments est vide . Cela arrive peu importe ce que j'ai mis ItemsSource
à, comme ItemsSource="TotallyInvalidProperty"
. Toutefois, si ItemsSource
est vide, la ListBox disparaît.
Le code derrière:
public ObservableCollection<FavoriteFilter> FavoriteFilters
{
get
{
return PlumData.FavoriteFilters;
}
}
PlumData
:
private static ObservableCollection<FavoriteFilter> _favoriteFilters = new ObservableCollection<FavoriteFilter>();
public static ObservableCollection<FavoriteFilter> FavoriteFilters
{
get
{
return _favoriteFilters;
}
}
Je ne comprends pas pourquoi cela ne fonctionne pas. Cependant, quand je le fais dans le code-behind, ça marche bien:
void BottomFavoritesBar_Loaded(object sender, RoutedEventArgs e)
{
favoriteFiltersList.ItemsSource = FavoriteFilters;
}
Qu'est-ce que je fais mal? J'utilise SL4.