0
明らかに私は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
が空の場合、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を使用しています。私の頭の上から