簡體   English   中英

如何在C#中創建列表集合並為其初始化數據

[英]How can I Create a Collection of Lists in C# and initialize data to it

我想為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中使用它?

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;


        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM