Видимо, я не понимаю что-то о привязке ListBox
элементов управления к данным.
Вот ListBox
, который привязывается к свойству в коде:
<ListBox ItemsSource="FavoriteFilters"
x:Name="favoriteFiltersList"
Visibility="{Binding FavoriteFilters.IsEmpty, Converter={StaticResource visibilityConverter}}">
<ListBox.ItemTemplate>
<DataTemplate>
<my:FavoriteFilterLink />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Когда я это делаю, появляется ListBox
с единственным элементом, заполненным запасными значениями, даже если источник элементов пуст. Это происходит независимо от того, что я установил ItemsSource
, например ItemsSource="TotallyInvalidProperty"
. Однако, если ItemsSource
пусто, ListBox исчезает.
Код позади:
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;
}
}
Я не понимаю, почему это не работает. Тем не менее, когда я делаю это в коде позади, он работает нормально:
void BottomFavoritesBar_Loaded(object sender, RoutedEventArgs e)
{
favoriteFiltersList.ItemsSource = FavoriteFilters;
}
Что я делаю не так? Я использую SL4.