如何在C#中创建列表集合并初始化数据

本文关键字:集合 合并 初始化 数据 列表 创建 | 更新日期: 2023-09-27 17:59:01

我想在windows商店应用程序上为媒体创建一个示例数据,我创建了一个类DigitalMedia,如下所示

public class DigitalMedia
{
    public string Title { get; set; }
    public string Author { get; set; }
    public string Subject { get; set; }
    public string Format { get; set; }
    public double Duration { get; set; }
    public string Description { get; set; }
    public ImageSource TitleImage { get; set; }
    public ImageSource Thumbnail { get; set; }
    public Uri PurchaseLink { get; set; }
}

我还创建了另一个名为GroupedMedia的类来表示DigitalMedia类的一个组。该代码低于

public class GroupedMedia : INotifyPropertyChanged
{
    public string GroupTitle { get; set; }
    public string Description { get; set; }
    public ImageSource GroupImage { get; set; }
    private ObservableCollection<DigitalMedia> _mediaList = null;
    public ObservableCollection<DigitalMedia> MediaList 
    {
        get 
        {
            if (_mediaList == null)
                _mediaList = new ObservableCollection<DigitalMedia>();
                return _mediaList;
        }
        set 
        {
            _mediaList = value; 
            RaisePropertyChanged("MediaList");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    private void RaisePropertyChanged(string property)
    {
        if (PropertyChanged != null)
            PropertyChanged(this, new PropertyChangedEventArgs(property));
    }
  • 如何将示例数据添加到DigitalMedia集合,并添加数据到GroupedMedia集合
  • 如何将MainPage.xaml.cs的DefaultViewModel设置为此集合
  • 如何将包含数据的集合绑定到CollectionViewSource,以便在XAML页面中的GridView中使用它

如何在C#中创建列表集合并初始化数据

1-如果这只是为了测试目的,您可以简单地将对象的初始化添加到MainWindow.xaml.cs.的InitializeComponent()下面

3-在主窗口中放入一个DataGrid,如下所示:

<Window x:Class="WpfApplication7.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <DataGrid Name="dgTest"></DataGrid>
    </Grid>
</Window>

然后将其ItemsSource设置为您的数据。

public MainWindow()
        {
            InitializeComponent();
            //Initialize your data here
            GroupedMedia gm = new GroupedMedia();
            //Initialize your data here
            this.dgTest.ItemsSource = gm.MediaList;
        }

试试这样的

       static void Main(string[] args)
        {
            GroupedMedia groupedMedia = new GroupedMedia();
            List<DigitalMedia> digitalMedias = new List<DigitalMedia>();
            for(int i = 0; i < 5; i++)
            {
               DigitalMedia digitalMedia = new DigitalMedia();
                digitalMedias.Add(digitalMedia);
                digitalMedia.Author = "John";
            }
            groupedMedia.MediaList = digitalMedias;

        }