3

我想在用户按下按钮后立即向 ListBox 添加一个文本列表。每个 ListItem 包含TextBlock绑定数据的对象。

但是TextBlock没有显示文字!虽然我可以看到插入的每个项目的背景颜色!

<StackPanel>
    <Button Content="CLICK" Click="Button_Click"></Button>
    <ListBox x:Name="dataList" Foreground="Red" Background="Blue">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <TextBlock Text="{Binding Feed}" FontSize="28"></TextBlock>
            </DataTemplate>
        </ListBox.ItemTemplate>
        </ListBox>
</StackPanel> 

我背后的代码看起来像

public partial class MainPage : UserControl
{
    ObservableCollection<Data> data;
    public MainPage()
    {
        InitializeComponent();
        data = new ObservableCollection<Data>();
        dataList.ItemsSource = data;
    }
    class Data :INotifyPropertyChanged
    {
        public Data(String s)
        {
            Feed = s;
        }
        private string _feed;
        public String Feed
        {
            get { return _feed; }
            set { _feed = value; NotifyPropertyChanged("Feed"); }
        }
        public void NotifyPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
        public event PropertyChangedEventHandler PropertyChanged;
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        data.Add(new Data("News1"));
        data.Add(new Data("News2"));
        data.Add(new Data("News2"));
    }

}

谢谢..

4

1 回答 1

4

您的课程Data需要公开,否则private默认情况下它将具有访问说明符..

所以应该是

public class Data.....

其他的好像都还好。。

于 2013-10-01T12:26:41.940 回答