По-видимому, я ничего не понимаю о привязке ListBox
элементы управления данными.Silverlight: сложно связать данные
Вот 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.