[英]Silverlight: Difficult with Data Binding
显然,我对将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。
离开我的头顶,您不需要像这样设置绑定:
<ListBox ItemsSource="{Binding FavoriteFilters}"
x:Name="favoriteFiltersList"
Visibility="{Binding FavoriteFilters.IsEmpty, Converter={StaticResource visibilityConverter}}">
注意Binding
关键字。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.