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 に答える