繁体   English   中英

Silverlight:数据绑定困难

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM