我正在做小项目,我正在尝试使用对象来存储数据。它的唯一:要存储的名称,年份和价格(最多10个项目(。
//On click I get user input and I create new object instance
//This is addmovie.xaml.cs
private void btn_add_movie_Click(object sender, RoutedEventArgs e)
{
string m = input_movie_name.Text;
Movie NewMovie = new Movie { Name = m };
}
// This is Movie class
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DeNiro
{
public class Movie
{
public string Name {get; set;}
public int year { get; set; }
public string genre { get; set; }
public int price { get; set; }
public List<Movie> Moviez { get; set; }
}
}
问题:这是movielist.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace DeNiro
{
/// <summary>
/// Interaction logic for movielist.xaml
/// </summary>
public partial class movielist : Page
{
public movielist()
{
InitializeComponent();
String test = NewMovie.Name;
}
}
}
为什么我不能使用 NewMovie.Name?
有没有办法在movielist.xaml中创建新的电影实例.cs并从中获取以前存储的数据?请帮忙。
我会尽量做到清楚:
问题是因为当你在函数内定义一个变量而不返回或不将其"return"值传递给另一个函数或类属性或引用时,数据只是浪费了(这不是完全以编程方式的解释,但它会帮助你理解(
现在,在您的代码中,单击按钮后,将创建类Movie
的新实例(如您定义的那样:名称、年份和价格(。 就是这样,函数完成,不对NewMovie
执行任何操作.
您要做的是将此实例传递给一个新函数:
public partial class movielist: Page
{
// This is list, unlike array you can insert things to it as much as you want
private List<Movie> MoviesList = new List<Movie>();
public movielist()
{
InitializeComponent();
}
public void AddMovie(string newMovie)
{
this.MoviesList.Add(newMovie); // Adds new movie to the movies list
String test = NewMovie.Name;
}
}
在:
private void btn_add_movie_Click(object sender, RoutedEventArgs e)
{
string m = input_movie_name.Text;
Movie NewMovie = new Movie { Name = m };
this.movielistInstance.AddMovie(NewMovie);
}
不要忘记在课堂上设置private movielist movielistInstance = new movielist();
addmovie.xaml.cs
下次,请发布整个addmovie.xaml.cs
,这将使我们更容易回答。